Курс 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. Работа с файлами и директориями в Python.
  4. Работа с f-строками 2.0
  5. Функции в одну строку
  6. Howdoi — получение ответов из терминала
  7. Основные функции и модули Python
  8. Оператор «not» в Python
  9. Оператор распаковки в Python
  10. Измерение времени выполнения кода
  11. Функция enumerate в Python
  12. Непрерывная проверка в Python
  13. Разрешение имен в Python
  14. Объединение словарей в Python
  15. Метод ifloordiv для пользовательских классов
  16. Прокачанный трейсинг ошибок
  17. Декораторы для регистрации функций
  18. Преобразование строки в число
  19. Основы Python
  20. Python: динамическая типизация и проверка типов
  21. Обработка аргументов Python
  22. Функция reversed() в Python
  23. Создание объекта timedelta
  24. Переопределение метода __or__()
  25. Установка Home Assistant
  26. Потоковый ввод в Python
  27. Поиск шаблона в строке
  28. Преобразование Excel в PDF с Spire.XLS
  29. Работа с файлами в Python
  30. Импорт модулей и пакетов в Python
  31. Сортировка и обратный порядок
  32. Дизассемблирование Python кода
  33. Работа с итераторами через срезы
  34. Получение частей дроби
  35. Оформление кода на Python
  36. Основы слова
  37. Удаление дубликатов из списка с помощью dict.fromkeys
  38. Искажение имен в Python
  39. Склеивание строк через метод join()
  40. Новшества Flask 2.0
  41. Удаление эмодзи с помощью pandas
  42. Названия столбцов в Python таблицах
  43. Работа со случайными элементами
  44. Генераторы словарей и множеств
  45. Логирование с Loguru

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