Курс 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. Принципы Zen Python
  3. Работа с геоданными с помощью geopy
  4. Очистка строки в Python
  5. split() без разделителя
  6. Создание списков в Python
  7. Форматирование строк в Python
  8. Обезопасьте ввод данных
  9. Создание новых функций через partial
  10. Определение основы слова с showballstemmer
  11. Создание функций высшего порядка
  12. Преобразование документов в PDF с помощью Spire.Office
  13. Множественное наследование в Python
  14. Работа с WindowsPath()
  15. Цикл for в Python
  16. Список переменных в Python
  17. Рациональные числа в Python
  18. Транспонирование 2D-массива с помощью zip
  19. Перемещение и удаление файлов в Python
  20. Форматирование данных с помощью pprint
  21. Поиск частых элементов в списке
  22. Хранение переменных в Python.
  23. Копирование и вставка текста в Python
  24. Тестирование времени с Freezegun
  25. Игра Виселица на Python
  26. Метод join для наборов
  27. Генераторы списков
  28. Копирование списков в Python
  29. Импорт объектов из модулей
  30. Работа с географическими данными.
  31. Разделение строки с помощью re.split()
  32. Работа с OpenCV
  33. Переименование файлов в Python
  34. Метод splitlines() для разделения строк
  35. Метод rxor для операции побитового исключающего «или»
  36. Работа с необработанными строками
  37. Метод difference_update() — разность множеств
  38. Метод rmatmul для обратного матричного умножения
  39. Отправка HTTP-запросов в Python
  40. Измерение времени выполнения в Python
  41. Добавление элемента в список.
  42. Оператор объединения словарей
  43. Округление в Python
  44. Блок else в циклах Python
  45. Замена подстроки
  46. Библиотека itertools: объединение списков

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