Курс 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
- Поиск HTML-элементов с BeautifulSoup
- Генерация случайных чисел в Python
- Конвертация коллекций в Python
- Изучение объектов с помощью dir()
- Курс по дообучению ChatGPT
- Многострочные комментарии в Python
- Оптимизация параметров в Python
- Экспорт данных с помощью writefile
- Тестирование с responses
- Методы и функции в Python
- Магические методы в Python
- Анонимные функции в Python
- Python enumerate() использование
- Метод join для объединения строк
- Тестирование с unittest
- Метод add для класса Vector
- Профилирование кода на Python
- Цикл while в Python
- Работа с срезами в Numpy
- Список и кортеж в Python
- Измерение времени выполнения кода
- Генераторы списков в Python
- Участие в LP стейкинге Waves
- Создание namedtuple списком полей
- Отслеживание выполнения программы с библиотекой tqdm
- Настройка шрифта и цвета в Tkinter
- Имена объектов в Python
- Изменение объектов в Python
- Сортировка в Python
- Блок else в обработке исключений
- Установка и обучение ChatterBot
- Встроенные функции Python
- Оператор walrus в Python
- Асинхронное выполнение задач в Python
- Удаление элементов по срезу
- Определение наиболее частого элемента с помощью collections.Counter
- Подписка на каналы разработчиков
- Функция findall() для поиска вхождений строки
- Официальный канал Python в Telegram
- Декораторы в Python
- Методы __repr__ и __str__ в Python
- Преобразование данных в Python
- Множественное назначение в Python















