Курс 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. Генераторные выражения и islice.
  2. Путь к интерпретатору Python
  3. Замена элементов в списке с помощью генераторов списков
  4. Работа со словарями
  5. Искажение имен в Python
  6. Разделение строки с помощью re.split()
  7. Создание задания в Cron
  8. Создание словарей и множеств в Python.
  9. Обработка ошибок в JSON данных
  10. Операции с комплексными числами
  11. Обрезка изображения с Pillow
  12. Использование функции enumerate()
  13. Встраивание HTML в Jupyter Notebook
  14. Работа с каталогами в Python
  15. Оператор is в Python
  16. Сравнение неупорядоченных списков
  17. Defaultdict в Python
  18. Преобразование регистра строк
  19. Python Ellipsis использование
  20. Инициализация структур данных
  21. Мощь вложенных функций в Python
  22. Группировка элементов в словарь
  23. Создание словарей в Python
  24. Транспонирование 2D-массива с помощью zip
  25. Метод Event.wait() в Python
  26. Использование html-скриптов в Jupyter Notebook
  27. Лямбда-функции в Python
  28. Декораторы в Python
  29. Блок try-except-else
  30. Открытие и редактирование скриптов Python
  31. Удаление знаков препинания в Python
  32. Функция с **kwargs в Python
  33. Метод __ixor__ для побитового исключающего ИЛИ
  34. Тестирование функции сложения
  35. Python groupby() из itertools: работа с повторяющимися элементами
  36. Генератор бросков кубиков
  37. Наиболее частотные элементы с помощью Counter
  38. Преобразование чисел в слова
  39. Управление ресурсами в Python
  40. Динамическая типизация в Python
  41. Очистка входных данных
  42. Декораторы в Python
  43. Объединение словарей в Python
  44. Лямбда-функции в цикле
  45. Определение имен функций
  46. Получение текущего времени в Python
  47. Проверка условий в Python

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