Курс 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. Метод __float__ в Python
  3. Модуль pprint: улучшение вывода данных
  4. Основы Python за 14 дней
  5. Создание вложенных циклов for
  6. Создание списка дат
  7. Сравнение объектов в Python
  8. Создание функций высшего порядка
  9. Преобразование чисел в слова
  10. Возврат значений из генератора
  11. Сохранение и загрузка модели в PyTorch
  12. Округление в Python
  13. Работа с кортежами в Python
  14. Нахождение пересечения множеств
  15. Константы в модуле cmath
  16. Расчет времени выполнения
  17. Функции map() и reduce() в Python
  18. Пустой оператор pass в Python
  19. Тест скорости набора текста на Python
  20. Подсчет элементов с помощью Counter из collections
  21. Печать календаря
  22. Форматирование чисел в Python
  23. Многострочные комментарии в Python
  24. Форматирование строк в Python.
  25. Управление User-Agent в Python
  26. Работа с асинхронными задачами в Python
  27. Работа с YAML в Python
  28. Переопределение метода __eq__
  29. Измерение времени выполнения кода
  30. Лямбда-функции в Python
  31. Метод rlshift для битового сдвига
  32. Списковый компрехеншен.
  33. Роль object и type в Python
  34. Удаление эмодзи с помощью pandas
  35. Оценка выражений генератора в Python
  36. Создание словарей в Python
  37. Преобразование числа в список цифр
  38. Обработка исключений в Python
  39. Метод is_absolute() для PurePath
  40. Возвращение нескольких значений через кортеж или класс
  41. Создание и обучение модели с Keras
  42. Логирование с Logzero
  43. Работа с исключениями в Python
  44. Профилирование данных с Pandas.
  45. Разделение строк в Python
  46. Скрытие вывода данных
  47. Импорт классов из другого файла

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