Курс 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
- Метод repr() в Python
- Оператор match в Python
- Рекурсия для обращения строки
- Замена переменных в Python
- Python Поверхностное Копирование
- Изменение логики работы с временем
- Работа с контекстным менеджером Pool
- Отладка утечек памяти в Python
- Построение графиков в Matplotlib
- Создание .exe файла с pyinstaller
- Замена текста с re.sub()
- Копирование в Python
- Обработка ошибки IndexError
- JSON-esque в Python
- Расширение информации об ошибке в Python
- Функции min(), max(), sum()
- Декоратор защиты анонимных пользователей
- Удаление элемента по индексу
- Mad Libs Generator
- Присвоение значений переменным в Python
- Работа с YAML в Python: PyYAML.
- Отрицательные индексы списков в Python
- Получение текущего времени в Python
- Поиск наиболее частого элемента в списке
- Списковый компрехеншен.
- Перевернуть список в Python
- Синхронизация доступа к ресурсам
- Управление контекстом выполнения
- Добавление Progressbar в Python
- Методы split() и join() — Python строк.
- Метод enumerate() в Python
- Профилирование с cProfile
- Сокращение ссылок с pyshorteners
- Изменения в обработке логических значений
- Работа с библиотекой requests
- Комментарии в Python
- Ограничение итераций в Python
- Работа со строками в Python
- Создание функций высшего порядка
- Асинхронное программирование с asyncio
- Настройка вывода NumPy















