Курс 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
- Аргументы *args и **kwargs
- Изменение IP-адреса в Python
- Создание треугольника Паскаля
- Форматирование строк в Python
- Работа с Telegram API на Python
- Работа с срезами в Numpy
- Фильтрация списка от «ложных» значений
- Оператор «not» в Python
- Работа с collections в Python.
- Использование type hints
- Создание таблиц в терминале с PrettyTable
- Установка пакетов с помощью pip
- Просмотр файла в Jupyter Noteboo
- Создание виртуальной среды
- Поиск с библиотекой Google
- Получение идентификатора объекта в памяти
- Работа с CSV в Python
- Обработка исключений в Python
- Использование обратной косой черты в f-строках
- Возведение в квадрат с помощью itertools
- Управление контекстом выполнения
- Работа с базами данных SQLite
- Копирование объектов в Python
- Удаление элемента по индексу
- Замена переменных в Python
- Мониторинг работы программы Py-spy
- Передача аргументов через **arguments
- Progress с библиотекой tqdm
- Измерение времени выполнения кода
- Метод ifloordiv для пользовательских классов
- Хэш-функции и метод цепочек
- Получение локальных переменных в Python
- capitalize() — изменение регистра первого символа строки
- Генераторы списков в Python
- Объединение словарей в Python
- Подсчет элементов в Python
- Избегайте двойного подчеркивания
- Работа с множествами в Python
- Навыки Python: строки, типы данных
- Проекты на Python
- Присвоение и ссылки
- Метод pos в Python
- Срезы в Python
- Функции в одну строку
- Обмен данными с asyncio.Queue















