Курс 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
- Поиск наиболее частого элемента в списке
- Принципы LSP и ISP в Python
- Функции в одну строку
- Операции с числами в Python
- Создание новых функций через partial
- Генераторы словарей и множеств
- Взаимодействие с sys
- Циклы в Python
- Проблемы с именами переменных
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Проверка типа объекта в Python
- Цикл for в Python
- Работа с кортежами в Python
- Метод count в Python: почему count(», ») возвращает 4?
- Анонимные функции Lambda
- Оператор == в Python
- Работа с множествами в Python
- Создание уникального множества
- Генераторы в Python
- Списки в Python: основы
- Многопроцессорное программирование в Python
- Инверсия списка/строки в Python
- Склеивание строк через метод join()
- Использование *args
- Секреты Python
- Создание словаря в Python
- Работа с модулем Calendar
- Разбиение строки в Python
- Создание коллекций из выражения-генератора
- Обновление шаблона base.html
- Назначение максимального и минимального значения переменной в Python.
- Логические значения в Python
- Возврат нескольких значений из функции
- Импорт модулей в Python 3.12
- Метод count() для списка
- Работа с базами данных SQLite
- Импорт модулей в Python 3.12
- Оптимизация памяти с помощью __slots__
- Метод repr() в Python
- Сравнение строк в Python
- Метод сравнения объектов в Python















