Курс 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. Сравнение def и lambda функций в Python
  3. Управление ресурсами в Python
  4. Копирование объектов в Python
  5. Логирование с Logzero
  6. Декораторы в Python
  7. Разрешение имен в Python
  8. Проверка подстроки в строке
  9. Flask: создание веб-приложений
  10. Форматирование строк в Python
  11. Разделение строки с помощью re.split()
  12. Проверка условий в Python
  13. Многострочные комментарии в Python
  14. Преобразование вложенного списка
  15. Создание словарей и множеств в Python
  16. Функция print() — вывод информации
  17. Поиск email
  18. Метод split() в Python
  19. Циклы for в Python
  20. Работа со строками
  21. Создание словарей и множеств в Python.
  22. Декодирование байтов в строку
  23. Генератор бросков кубиков
  24. Конкатенация строк с join() в Python
  25. Конвертация изображений в PDF
  26. Метод __irshift__ для побитового сдвига вправо
  27. split() без разделителя
  28. Оператор Walrus в Python 3.8
  29. Курс Data Scientist в медицине
  30. Модуль antigravity: генерация координат
  31. Класс Counter() для подсчета элементов
  32. Мониторинг работы программы Py-spy
  33. Построение графиков в терминале с bashplotlib
  34. Сортировка в Python
  35. Python Менеджер контекста
  36. Блок else в Python
  37. Многострочные комментарии в Python
  38. Перемешивание списка с shuffle()
  39. Гибкие функции Python
  40. Проверка класса объекта
  41. Методы и функции в Python
  42. Создание функций высшего порядка
  43. Управление контекстом выполнения
  44. Progress с библиотекой tqdm
  45. Декораторы в Python
  46. Подсчет часто встречающихся элементов

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