Курс 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"
- Визуализация пропусков данных
- Изменение переменной в Python: nonlocal
- Flask — веб-фреймворк Python
- Работа с необработанными строками
- Генераторы в Python
- Работа с SQLite в Python
- Модуль array: создание и использование массивов
- Метод Event.wait() в Python
- Поиск шаблона в строке
- Расчет времени выполнения
- Бинарный поиск
- Класс-оболочка для словарей
- Реверс строки в Python
- Работа с контекстным менеджером Pool
- Магические методы в Python
- Работа с JSON данными в Python
- Работа с очередями в Python
- Копирование объектов в Python
- Переопределение оператора % для объектов
- Преобразование чисел в восьмеричную строку
- Срезы в Python
- Комментарии в Python
- Генераторы в Python
- Оператор морж в Python 3.8
- Блок try…finally в Python
- Форматирование строк в Python
- Создание и удаление объектов
- Переопределение метода xor в Python
- Переопределение унарных операторов
- Метод join() для объединения элементов в строку.
- Python: динамическая типизация и проверка типов
- Объединение списков в Python.
- Работа с модулем cmath
- Декораторы в Python
- Использование функции enumerate()
- Возведение в квадрат с помощью itertools
- Python UserString — создание подклассов строк
- Округление дробей в Python
- Асинхронное программирование с asyncio
- Глобальные переменные в Python
- Создание и использование модулей в Python
- Комментарии в Python.
- Асинхронный код в Python
- Добавление Progressbar в Python
- Работа с Path в Python
- Отладка производительности Python















