Курс Python → Переопределение унарных операторов

Унарные операторы в Python позволяют переопределить стандартное поведение операторов для объектов пользовательских классов. В данном примере мы рассмотрим класс Number, в котором определен метод neg(self), который переопределяет унарный оператор отрицания (-) для объектов этого класса. Когда мы используем оператор отрицания для объекта num, Python автоматически вызывает метод neg для этого объекта.

Метод neg возвращает новый объект Number с отрицательным значением атрибута value. Это позволяет нам создавать объекты, которые могут поддерживать математические операции с помощью перегрузки операторов в Python. Переопределение метода neg дает нам возможность определить поведение объекта при использовании унарного оператора отрицания.

Пример кода:


class Number:
    def __init__(self, value):
        self.value = value
        
    def __neg__(self):
        return Number(-self.value)

num = Number(5)
neg_num = -num

print(neg_num.value)  # Выведет -5

В данном примере мы создаем объект num класса Number с атрибутом value равным 5. Затем мы используем унарный оператор отрицания для объекта num, что вызывает метод __neg__, который создает новый объект Number с отрицательным значением value. В результате мы получаем объект neg_num с атрибутом value равным -5.

Переопределение унарного оператора отрицания позволяет нам более гибко управлять поведением объектов в Python и использовать их в математических операциях. Этот подход особенно полезен при работе с числами или другими данными, где унарный оператор отрицания имеет смысл.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Наиболее частотные элементы с помощью Counter
  2. Разделение строки с помощью re.split()
  3. Оптимизация параметров в Python
  4. Генераторы словарей и множеств
  5. Декораторы в Python
  6. Работа со строками в Python
  7. Метод join() для объединения строк
  8. Получение текущей директории
  9. Python reversed() vs срез[::-1]
  10. Создание словарей и множеств в Python.
  11. Перегрузка операторов в Python
  12. Форматирование строк с f-строками
  13. Работа с географическими данными в Python
  14. Официальный канал Python в Telegram
  15. Профилирование с Pandas
  16. Тестирование функции сложения
  17. Форматирование вывода с F-строками
  18. Область видимости переменных
  19. Функция enumerate() — Python
  20. Настройка вывода в Numpy
  21. Поиск наиболее частого элемента
  22. Преобразование типов данных в set comprehension
  23. Переворот строки с помощью срезов
  24. Docstring в Python
  25. Именованные срезы в Python
  26. Вызов функций по строке в Python.
  27. Создание детектора плагиата
  28. Функции map, filter и reduce
  29. Генераторы в Python
  30. Оформление кода на Python
  31. Переопределение метода __rshift__
  32. Получение списка файлов в директории с использованием os
  33. Метод get для словарей
  34. Возведение в квадрат с помощью itertools
  35. Объединение словарей в Python
  36. Проверка запуска скрипта или импорта модуля
  37. Работа с *args и **kwargs в Python
  38. Метод title() в Python
  39. Python: отсутствие точек с запятыми
  40. Переворот строки
  41. Создание коллекций из выражения-генератора
  42. Создание списков в Python
  43. Запуск внешних программ с subprocess
  44. Кортежи в Python: особенности и преимущества
  45. Обработка исключений в Python
  46. Генератор надежных паролей
  47. Поиск шаблона в начале строки
  48. Создание тестовых данных с Faker
  49. Названия переменных

Marketello читают маркетологи из крутых компаний