Курс 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
- Анонимные функции в Python
- Метод is_absolute() для PurePath
- Python: цикл for и оператор присваивания
- Возврат значений из генератора
- Работа с YAML в Python: PyYAML.
- Уникальность ключей в словаре
- Управление контекстом выполнения кода
- Python Поверхностное Копирование
- Аргументы *args и **kwargs
- Комментарии в Python
- Работа с Telegram API на Python
- Retrying в Python: повторные вызовы
- Списковое включение в Python
- Создание словарей с defaultdict()
- Разделение строки с помощью split()
- Создание таблиц в терминале с PrettyTable
- Python 3.12: переиспользование кавычек
- Инверсия списков и строк в Python
- Инверсия списка и строки в Python
- Отладка регулярных выражений в Python
- Функция с *args.
- Генераторы списков
- Лямбда-функции для min/max
- Метод matmul для умножения матриц
- Функции классификации комплексных чисел
- ChainMap избыточные ключи
- Метод count() для списка
- Возвращение нескольких значений
- Работа со словарями
- Оператор деления для класса Rational
- Функции any() и all() в Python
- Функция reduce() из модуля functools
- Метод __index__ в Python
- Создание .exe файла с pyinstaller
- Преобразование букв в нижний регистр
- Отображение графиков в Jupyter с Matplotlib
- Хранение переменных в словаре.
- Сортировка с параметром key
- Поиск подстроки в строке
- Создание веб-приложения с Flask
- Официальный канал Python в Telegram
- Копирование объектов в Python
- Игра Виселица на Python
- Взаимодействие с внешними процессами в Python
- Оценка точности модели
- Удаление знаков препинания в Python















