Курс 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"
- Получение срезов итераторов
- Сравнение def и lambda функций в Python
- Управление ресурсами в Python
- Копирование объектов в Python
- Логирование с Logzero
- Декораторы в Python
- Разрешение имен в Python
- Проверка подстроки в строке
- Flask: создание веб-приложений
- Форматирование строк в Python
- Разделение строки с помощью re.split()
- Проверка условий в Python
- Многострочные комментарии в Python
- Преобразование вложенного списка
- Создание словарей и множеств в Python
- Функция print() — вывод информации
- Поиск email
- Метод split() в Python
- Циклы for в Python
- Работа со строками
- Создание словарей и множеств в Python.
- Декодирование байтов в строку
- Генератор бросков кубиков
- Конкатенация строк с join() в Python
- Конвертация изображений в PDF
- Метод __irshift__ для побитового сдвига вправо
- split() без разделителя
- Оператор Walrus в Python 3.8
- Курс Data Scientist в медицине
- Модуль antigravity: генерация координат
- Класс Counter() для подсчета элементов
- Мониторинг работы программы Py-spy
- Построение графиков в терминале с bashplotlib
- Сортировка в Python
- Python Менеджер контекста
- Блок else в Python
- Многострочные комментарии в Python
- Перемешивание списка с shuffle()
- Гибкие функции Python
- Проверка класса объекта
- Методы и функции в Python
- Создание функций высшего порядка
- Управление контекстом выполнения
- Progress с библиотекой tqdm
- Декораторы в Python
- Подсчет часто встречающихся элементов















