Курс 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
  3. Извлечение статей с newspaper3k
  4. Удаление ключей из словаря
  5. Генераторы в Python
  6. Оператор деления для класса Rational
  7. Модуль os в Python: работа с файлами
  8. Очистка данных с помощью pandas
  9. Обучение модели с указанием эпох
  10. Форматирование данных с помощью pprint
  11. Метод eq для сравнения объектов
  12. Antigravity модуль
  13. Метод join() для объединения строк
  14. Отрицательные индексы списков в Python
  15. Операции с комплексными числами
  16. Нан-рефлексивность в Python
  17. Переворот строки с использованием цикла
  18. Создание комплексных чисел
  19. Декодирование байтов в строку
  20. inspect в Python: анализ кода
  21. Очистка данных в Python
  22. Операторы сравнения в Python
  23. Импорт модулей и пакетов в Python
  24. Метод setdefault() в Python
  25. Многопоточность в Python
  26. Блок else в Python
  27. Сортировка списка по индексам
  28. Метод __getitem__ в Python
  29. Импорт в Python: список all
  30. Подсчет количества элементов в списке
  31. Перегрузка операторов в Python
  32. Исправление ошибки NameError
  33. Получение имени функции с помощью inspect
  34. Наиболее частотные элементы с помощью Counter
  35. Курс Data Scientist в медицине
  36. Удаление знаков препинания в Python
  37. Реверс строки и списка в Python.
  38. Defaultdict в Python
  39. Лямбда-функции для min/max
  40. Настройка нарезки списков
  41. Сортировка в Python
  42. JMESPath в Python
  43. Оператор in для проверки наличия элемента
  44. Метод lt для сортировки объектов
  45. Основные функции и модули Python
  46. Работа со строками в Python

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