Курс 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"
- Работа с изменяемыми коллекциями
- Метод __float__ в Python
- Модуль pprint: улучшение вывода данных
- Основы Python за 14 дней
- Создание вложенных циклов for
- Создание списка дат
- Сравнение объектов в Python
- Создание функций высшего порядка
- Преобразование чисел в слова
- Возврат значений из генератора
- Сохранение и загрузка модели в PyTorch
- Округление в Python
- Работа с кортежами в Python
- Нахождение пересечения множеств
- Константы в модуле cmath
- Расчет времени выполнения
- Функции map() и reduce() в Python
- Пустой оператор pass в Python
- Тест скорости набора текста на Python
- Подсчет элементов с помощью Counter из collections
- Печать календаря
- Форматирование чисел в Python
- Многострочные комментарии в Python
- Форматирование строк в Python.
- Управление User-Agent в Python
- Работа с асинхронными задачами в Python
- Работа с YAML в Python
- Переопределение метода __eq__
- Измерение времени выполнения кода
- Лямбда-функции в Python
- Метод rlshift для битового сдвига
- Списковый компрехеншен.
- Роль object и type в Python
- Удаление эмодзи с помощью pandas
- Оценка выражений генератора в Python
- Создание словарей в Python
- Преобразование числа в список цифр
- Обработка исключений в Python
- Метод is_absolute() для PurePath
- Возвращение нескольких значений через кортеж или класс
- Создание и обучение модели с Keras
- Логирование с Logzero
- Работа с исключениями в Python
- Профилирование данных с Pandas.
- Разделение строк в Python
- Скрытие вывода данных
- Импорт классов из другого файла















