Курс 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
- Извлечение статей с newspaper3k
- Удаление ключей из словаря
- Генераторы в Python
- Оператор деления для класса Rational
- Модуль os в Python: работа с файлами
- Очистка данных с помощью pandas
- Обучение модели с указанием эпох
- Форматирование данных с помощью pprint
- Метод eq для сравнения объектов
- Antigravity модуль
- Метод join() для объединения строк
- Отрицательные индексы списков в Python
- Операции с комплексными числами
- Нан-рефлексивность в Python
- Переворот строки с использованием цикла
- Создание комплексных чисел
- Декодирование байтов в строку
- inspect в Python: анализ кода
- Очистка данных в Python
- Операторы сравнения в Python
- Импорт модулей и пакетов в Python
- Метод setdefault() в Python
- Многопоточность в Python
- Блок else в Python
- Сортировка списка по индексам
- Метод __getitem__ в Python
- Импорт в Python: список all
- Подсчет количества элементов в списке
- Перегрузка операторов в Python
- Исправление ошибки NameError
- Получение имени функции с помощью inspect
- Наиболее частотные элементы с помощью Counter
- Курс Data Scientist в медицине
- Удаление знаков препинания в Python
- Реверс строки и списка в Python.
- Defaultdict в Python
- Лямбда-функции для min/max
- Настройка нарезки списков
- Сортировка в Python
- JMESPath в Python
- Оператор in для проверки наличия элемента
- Метод lt для сортировки объектов
- Основные функции и модули Python
- Работа со строками в Python















