Курс 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"
- Генераторные выражения и islice.
- Путь к интерпретатору Python
- Замена элементов в списке с помощью генераторов списков
- Работа со словарями
- Искажение имен в Python
- Разделение строки с помощью re.split()
- Создание задания в Cron
- Создание словарей и множеств в Python.
- Обработка ошибок в JSON данных
- Операции с комплексными числами
- Обрезка изображения с Pillow
- Использование функции enumerate()
- Встраивание HTML в Jupyter Notebook
- Работа с каталогами в Python
- Оператор is в Python
- Сравнение неупорядоченных списков
- Defaultdict в Python
- Преобразование регистра строк
- Python Ellipsis использование
- Инициализация структур данных
- Мощь вложенных функций в Python
- Группировка элементов в словарь
- Создание словарей в Python
- Транспонирование 2D-массива с помощью zip
- Метод Event.wait() в Python
- Использование html-скриптов в Jupyter Notebook
- Лямбда-функции в Python
- Декораторы в Python
- Блок try-except-else
- Открытие и редактирование скриптов Python
- Удаление знаков препинания в Python
- Функция с **kwargs в Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Тестирование функции сложения
- Python groupby() из itertools: работа с повторяющимися элементами
- Генератор бросков кубиков
- Наиболее частотные элементы с помощью Counter
- Преобразование чисел в слова
- Управление ресурсами в Python
- Динамическая типизация в Python
- Очистка входных данных
- Декораторы в Python
- Объединение словарей в Python
- Лямбда-функции в цикле
- Определение имен функций
- Получение текущего времени в Python
- Проверка условий в Python















