Курс 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
- Отправка POST запроса на сервер.
- Регулярные выражения: метод match
- Преобразование числа в список цифр
- Регистрация на хакатоне
- Работа с модулем random
- Список переменных в Python
- Python: динамическая типизация и проверка типов
- Enum в Python
- PATCH-запрос с библиотекой requests
- Фильтрация списка чисел
- Частичное совпадение пользовательского ввода в Python 3.10
- Оператор «and» в Python
- Возврат нескольких значений
- Значения по умолчанию в Python
- Установка и использование howdoi
- Регистрация на TenChat
- Импорт с альтернативным именем
- Разделение строки с помощью split()
- Поиск всех индексов подстроки
- Перевод эмодзи и эмотиконов.
- Счетчик в Python: most_common()
- Генераторы данных
- Модуль itertools: эффективная работа с итераторами
- Ограничение итераций в Python
- Получение имени функции с помощью inspect
- Работа с датой и временем в Python
- Методы в Python
- Работа с defaultdictами в Python
- Проверка на истинность объектов в Python
- Метод rmatmul для пользовательских матриц
- Создание копии списка в Python
- Поиск уникальных и повторяющихся элементов
- Объединение итераторов
- Пустой оператор pass в Python
- Многопоточность в Python
- Flask: создание веб-приложений
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Непрерывная проверка в Python
- Получение размера объекта с sys.getsizeof()
- Модуль inspect
- Оператор walrus в Python
- Логирование с Logzero
- Форматирование чисел в Python
- Срез списка в Python
- Типы возвращаемых значений в Python















