Курс 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.
- Работа с f-строками 2.0
- Функции в одну строку
- Howdoi — получение ответов из терминала
- Основные функции и модули Python
- Оператор «not» в Python
- Оператор распаковки в Python
- Измерение времени выполнения кода
- Функция enumerate в Python
- Непрерывная проверка в Python
- Разрешение имен в Python
- Объединение словарей в Python
- Метод ifloordiv для пользовательских классов
- Прокачанный трейсинг ошибок
- Декораторы для регистрации функций
- Преобразование строки в число
- Основы Python
- Python: динамическая типизация и проверка типов
- Обработка аргументов Python
- Функция reversed() в Python
- Создание объекта timedelta
- Переопределение метода __or__()
- Установка Home Assistant
- Потоковый ввод в Python
- Поиск шаблона в строке
- Преобразование Excel в PDF с Spire.XLS
- Работа с файлами в Python
- Импорт модулей и пакетов в Python
- Сортировка и обратный порядок
- Дизассемблирование Python кода
- Работа с итераторами через срезы
- Получение частей дроби
- Оформление кода на Python
- Основы слова
- Удаление дубликатов из списка с помощью dict.fromkeys
- Искажение имен в Python
- Склеивание строк через метод join()
- Новшества Flask 2.0
- Удаление эмодзи с помощью pandas
- Названия столбцов в Python таблицах
- Работа со случайными элементами
- Генераторы словарей и множеств
- Логирование с Loguru















