Курс 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. Аргументы *args и **kwargs
  3. Изменение IP-адреса в Python
  4. Создание треугольника Паскаля
  5. Форматирование строк в Python
  6. Работа с Telegram API на Python
  7. Работа с срезами в Numpy
  8. Фильтрация списка от «ложных» значений
  9. Оператор «not» в Python
  10. Работа с collections в Python.
  11. Использование type hints
  12. Создание таблиц в терминале с PrettyTable
  13. Установка пакетов с помощью pip
  14. Просмотр файла в Jupyter Noteboo
  15. Создание виртуальной среды
  16. Поиск с библиотекой Google
  17. Получение идентификатора объекта в памяти
  18. Работа с CSV в Python
  19. Обработка исключений в Python
  20. Использование обратной косой черты в f-строках
  21. Возведение в квадрат с помощью itertools
  22. Управление контекстом выполнения
  23. Работа с базами данных SQLite
  24. Копирование объектов в Python
  25. Удаление элемента по индексу
  26. Замена переменных в Python
  27. Мониторинг работы программы Py-spy
  28. Передача аргументов через **arguments
  29. Progress с библиотекой tqdm
  30. Измерение времени выполнения кода
  31. Метод ifloordiv для пользовательских классов
  32. Хэш-функции и метод цепочек
  33. Получение локальных переменных в Python
  34. capitalize() — изменение регистра первого символа строки
  35. Генераторы списков в Python
  36. Объединение словарей в Python
  37. Подсчет элементов в Python
  38. Избегайте двойного подчеркивания
  39. Работа с множествами в Python
  40. Навыки Python: строки, типы данных
  41. Проекты на Python
  42. Присвоение и ссылки
  43. Метод pos в Python
  44. Срезы в Python
  45. Функции в одну строку
  46. Обмен данными с asyncio.Queue

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