Курс 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. Отправка POST запроса на сервер.
  3. Регулярные выражения: метод match
  4. Преобразование числа в список цифр
  5. Регистрация на хакатоне
  6. Работа с модулем random
  7. Список переменных в Python
  8. Python: динамическая типизация и проверка типов
  9. Enum в Python
  10. PATCH-запрос с библиотекой requests
  11. Фильтрация списка чисел
  12. Частичное совпадение пользовательского ввода в Python 3.10
  13. Оператор «and» в Python
  14. Возврат нескольких значений
  15. Значения по умолчанию в Python
  16. Установка и использование howdoi
  17. Регистрация на TenChat
  18. Импорт с альтернативным именем
  19. Разделение строки с помощью split()
  20. Поиск всех индексов подстроки
  21. Перевод эмодзи и эмотиконов.
  22. Счетчик в Python: most_common()
  23. Генераторы данных
  24. Модуль itertools: эффективная работа с итераторами
  25. Ограничение итераций в Python
  26. Получение имени функции с помощью inspect
  27. Работа с датой и временем в Python
  28. Методы в Python
  29. Работа с defaultdictами в Python
  30. Проверка на истинность объектов в Python
  31. Метод rmatmul для пользовательских матриц
  32. Создание копии списка в Python
  33. Поиск уникальных и повторяющихся элементов
  34. Объединение итераторов
  35. Пустой оператор pass в Python
  36. Многопоточность в Python
  37. Flask: создание веб-приложений
  38. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  39. Непрерывная проверка в Python
  40. Получение размера объекта с sys.getsizeof()
  41. Модуль inspect
  42. Оператор walrus в Python
  43. Логирование с Logzero
  44. Форматирование чисел в Python
  45. Срез списка в Python
  46. Типы возвращаемых значений в Python

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