Курс 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"
- Измерение времени выполнения кода
- Принципы Zen Python
- Работа с геоданными с помощью geopy
- Очистка строки в Python
- split() без разделителя
- Создание списков в Python
- Форматирование строк в Python
- Обезопасьте ввод данных
- Создание новых функций через partial
- Определение основы слова с showballstemmer
- Создание функций высшего порядка
- Преобразование документов в PDF с помощью Spire.Office
- Множественное наследование в Python
- Работа с WindowsPath()
- Цикл for в Python
- Список переменных в Python
- Рациональные числа в Python
- Транспонирование 2D-массива с помощью zip
- Перемещение и удаление файлов в Python
- Форматирование данных с помощью pprint
- Поиск частых элементов в списке
- Хранение переменных в Python.
- Копирование и вставка текста в Python
- Тестирование времени с Freezegun
- Игра Виселица на Python
- Метод join для наборов
- Генераторы списков
- Копирование списков в Python
- Импорт объектов из модулей
- Работа с географическими данными.
- Разделение строки с помощью re.split()
- Работа с OpenCV
- Переименование файлов в Python
- Метод splitlines() для разделения строк
- Метод rxor для операции побитового исключающего «или»
- Работа с необработанными строками
- Метод difference_update() — разность множеств
- Метод rmatmul для обратного матричного умножения
- Отправка HTTP-запросов в Python
- Измерение времени выполнения в Python
- Добавление элемента в список.
- Оператор объединения словарей
- Округление в Python
- Блок else в циклах Python
- Замена подстроки
- Библиотека itertools: объединение списков















