Курс 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. Визуализация пропусков данных
  2. Изменение переменной в Python: nonlocal
  3. Flask — веб-фреймворк Python
  4. Работа с необработанными строками
  5. Генераторы в Python
  6. Работа с SQLite в Python
  7. Модуль array: создание и использование массивов
  8. Метод Event.wait() в Python
  9. Поиск шаблона в строке
  10. Расчет времени выполнения
  11. Бинарный поиск
  12. Класс-оболочка для словарей
  13. Реверс строки в Python
  14. Работа с контекстным менеджером Pool
  15. Магические методы в Python
  16. Работа с JSON данными в Python
  17. Работа с очередями в Python
  18. Копирование объектов в Python
  19. Переопределение оператора % для объектов
  20. Преобразование чисел в восьмеричную строку
  21. Срезы в Python
  22. Комментарии в Python
  23. Генераторы в Python
  24. Оператор морж в Python 3.8
  25. Блок try…finally в Python
  26. Форматирование строк в Python
  27. Создание и удаление объектов
  28. Переопределение метода xor в Python
  29. Переопределение унарных операторов
  30. Метод join() для объединения элементов в строку.
  31. Python: динамическая типизация и проверка типов
  32. Объединение списков в Python.
  33. Работа с модулем cmath
  34. Декораторы в Python
  35. Использование функции enumerate()
  36. Возведение в квадрат с помощью itertools
  37. Python UserString — создание подклассов строк
  38. Округление дробей в Python
  39. Асинхронное программирование с asyncio
  40. Глобальные переменные в Python
  41. Создание и использование модулей в Python
  42. Комментарии в Python.
  43. Асинхронный код в Python
  44. Добавление Progressbar в Python
  45. Работа с Path в Python
  46. Отладка производительности Python

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