Курс 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. F-строки в Python 3.8
  2. Поиск шаблона в начале строки
  3. Улучшенные подсказки для импорта в Python 3.12
  4. Установка пакета в Python
  5. Метод hash в Python
  6. Оператор объединения словарей
  7. Управление ресурсами с контекстными менеджерами
  8. Чтение и запись TOML-конфигов
  9. Оптимизация памяти с __slots__
  10. Использование функции enumerate()
  11. Удаление символа из строки
  12. enumerate() в Python для работы с индексами
  13. Создание Telegram-бота на Python
  14. Разделение строк в Python
  15. Поиск HTML-элементов с BeautifulSoup
  16. Цикл while в Python
  17. Форматирование строк в Python
  18. Печать списка с помощью метода join
  19. Логирование в Python
  20. Наиболее частотные элементы с помощью Counter
  21. Профилирование с Pandas
  22. Работа с рекламными данными в Pandas
  23. Распаковка элементов массива
  24. Просмотр внешнего файла в Python
  25. Определение размера папок в Python
  26. Генераторы в Python
  27. Lambda Functions in Python
  28. Регистрация на курсы SF Education
  29. Метод lt для сортировки объектов
  30. Хеши в Python
  31. Работа с байтовыми строками в Python
  32. Обратный список чисел
  33. Создание матрицы в Python
  34. Использование type hints
  35. Генераторы и сеты в Python
  36. Проверка переменных окружения в Python
  37. Оператор «or» в Python
  38. Объединение списков с использованием itertools.chain
  39. Отладка регулярных выражений в Python
  40. Pretty-printing JSON в Python
  41. Курсы Яндекс Практикум
  42. Поиск уникальных и повторяющихся элементов
  43. Сортировка и разворот списка
  44. Упрощенный вывод данных в Python
  45. Создание копии списка в Python
  46. Функция product() из itertools
  47. Подробная информация о %pinfo
  48. Безопасные SQL-запросы в Python 3.11
  49. Поиск email

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