Курс 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. Именованные срезы в Python
  2. Пустой оператор pass в Python
  3. Тип CodeType в Python.
  4. Изменение логики работы с временем
  5. Обработка исключений в Python
  6. Проверка памяти объекта
  7. Работа с комплексными числами
  8. Bootle — простой веб-фреймворк
  9. Создание пустых функций и классов в Python
  10. Проверка индексов коллекции
  11. Аннотации типов в Python
  12. Транспонирование матрицы
  13. Основы слова
  14. Enum в Python
  15. Поиск анаграмм с Counter
  16. Объединение словарей в Python
  17. Создание комплексных чисел
  18. Исправление ошибки NameError
  19. Функции в Python: создание и вызов
  20. Вызов внешних программ в Python с помощью sh
  21. Работа с CSV файлами в Python
  22. Изменение переменной в Python: nonlocal
  23. Мониторинг работы программы Py-spy
  24. Просмотр внешних файлов в %pycat
  25. Retrying в Python: повторные вызовы
  26. Извлечение данных из JSON
  27. Профилирование данных с Pandas.
  28. Создание и удаление объектов
  29. Модуль math: константы π и e
  30. Комплексные числа в Python
  31. Работа с множествами в Python
  32. Перебор элементов списка в Python
  33. Однострочники Python
  34. Очистка данных в Python
  35. Поиск email
  36. Строковое представление объектов
  37. Создание словарей в Python
  38. Встроенные функции Python
  39. Участие в LP стейкинге Waves
  40. Класс-оболочка для словарей
  41. Разделение строки на пары ключ-значение.
  42. Метод invert для побитового отрицания
  43. Разрешение имен в Python

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