Курс 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
- Пустой оператор pass в Python
- Тип CodeType в Python.
- Изменение логики работы с временем
- Обработка исключений в Python
- Проверка памяти объекта
- Работа с комплексными числами
- Bootle — простой веб-фреймворк
- Создание пустых функций и классов в Python
- Проверка индексов коллекции
- Аннотации типов в Python
- Транспонирование матрицы
- Основы слова
- Enum в Python
- Поиск анаграмм с Counter
- Объединение словарей в Python
- Создание комплексных чисел
- Исправление ошибки NameError
- Функции в Python: создание и вызов
- Вызов внешних программ в Python с помощью sh
- Работа с CSV файлами в Python
- Изменение переменной в Python: nonlocal
- Мониторинг работы программы Py-spy
- Просмотр внешних файлов в %pycat
- Retrying в Python: повторные вызовы
- Извлечение данных из JSON
- Профилирование данных с Pandas.
- Создание и удаление объектов
- Модуль math: константы π и e
- Комплексные числа в Python
- Работа с множествами в Python
- Перебор элементов списка в Python
- Однострочники Python
- Очистка данных в Python
- Поиск email
- Строковое представление объектов
- Создание словарей в Python
- Встроенные функции Python
- Участие в LP стейкинге Waves
- Класс-оболочка для словарей
- Разделение строки на пары ключ-значение.
- Метод invert для побитового отрицания
- Разрешение имен в Python















