Курс 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"
- Наиболее частотные элементы с помощью Counter
- Разделение строки с помощью re.split()
- Оптимизация параметров в Python
- Генераторы словарей и множеств
- Декораторы в Python
- Работа со строками в Python
- Метод join() для объединения строк
- Получение текущей директории
- Python reversed() vs срез[::-1]
- Создание словарей и множеств в Python.
- Перегрузка операторов в Python
- Форматирование строк с f-строками
- Работа с географическими данными в Python
- Официальный канал Python в Telegram
- Профилирование с Pandas
- Тестирование функции сложения
- Форматирование вывода с F-строками
- Область видимости переменных
- Функция enumerate() — Python
- Настройка вывода в Numpy
- Поиск наиболее частого элемента
- Преобразование типов данных в set comprehension
- Переворот строки с помощью срезов
- Docstring в Python
- Именованные срезы в Python
- Вызов функций по строке в Python.
- Создание детектора плагиата
- Функции map, filter и reduce
- Генераторы в Python
- Оформление кода на Python
- Переопределение метода __rshift__
- Получение списка файлов в директории с использованием os
- Метод get для словарей
- Возведение в квадрат с помощью itertools
- Объединение словарей в Python
- Проверка запуска скрипта или импорта модуля
- Работа с *args и **kwargs в Python
- Метод title() в Python
- Python: отсутствие точек с запятыми
- Переворот строки
- Создание коллекций из выражения-генератора
- Создание списков в Python
- Запуск внешних программ с subprocess
- Кортежи в Python: особенности и преимущества
- Обработка исключений в Python
- Генератор надежных паролей
- Поиск шаблона в начале строки
- Создание тестовых данных с Faker
- Названия переменных















