Курс 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. Перемешивание списка с shuffle()
  2. Удаление URL-адресов в Python
  3. Форматирование строк с помощью f-строк
  4. Сортировка элементов с OrderedDict
  5. Работа со стеком в Python
  6. Поиск частого элемента
  7. Преобразование данных в Python
  8. Доступ к локальным переменным
  9. Удаление дубликатов из списка
  10. Установка и использование библиотеки google
  11. Имена объектов в Python
  12. Встраивание HTML в Jupyter Notebook
  13. Создание таблиц в терминале с PrettyTable
  14. Перевод эмодзи и эмотиконов.
  15. Метод ifloordiv для пользовательских классов
  16. Автоматизация действий с Pyautogui
  17. Обработка исключений в Python
  18. Автоматизация с Python
  19. Объединение словарей в Python
  20. Работа с типами данных в Python с помощью pydantic.
  21. Генератор бросков кубиков
  22. Передача неизвестных аргументов в Python.
  23. Разделение функций на этапы
  24. Конкатенация строк с помощью join()
  25. Печать календаря
  26. Установка Git и AWS CLI
  27. Сравнение строк в Python
  28. Преобразование объекта в строку
  29. Форматирование строк с f-строками
  30. Фильтрация элементов с помощью islice
  31. Частичное совпадение пользовательского ввода в Python 3.10
  32. Преобразование текста в нижний регистр
  33. Замеры производительности в Python
  34. Игра «Камень, ножницы, бумага» — Python
  35. Получение частей дроби
  36. Подсчет элементов в Python
  37. Поиск наиболее частого элемента
  38. Возведение в квадрат с помощью itertools
  39. Форматирование данных с помощью pprint
  40. Особенности множеств в Python
  41. Объединение коллекций в Python
  42. Использование функции product
  43. Функция rsplit() в Python
  44. Создание GUI с Tkinter: Entry
  45. Многострочные комментарии в Python
  46. Установка и использование модуля Wikipedia

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