Курс 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"
- Перемешивание списка с shuffle()
- Удаление URL-адресов в Python
- Форматирование строк с помощью f-строк
- Сортировка элементов с OrderedDict
- Работа со стеком в Python
- Поиск частого элемента
- Преобразование данных в Python
- Доступ к локальным переменным
- Удаление дубликатов из списка
- Установка и использование библиотеки google
- Имена объектов в Python
- Встраивание HTML в Jupyter Notebook
- Создание таблиц в терминале с PrettyTable
- Перевод эмодзи и эмотиконов.
- Метод ifloordiv для пользовательских классов
- Автоматизация действий с Pyautogui
- Обработка исключений в Python
- Автоматизация с Python
- Объединение словарей в Python
- Работа с типами данных в Python с помощью pydantic.
- Генератор бросков кубиков
- Передача неизвестных аргументов в Python.
- Разделение функций на этапы
- Конкатенация строк с помощью join()
- Печать календаря
- Установка Git и AWS CLI
- Сравнение строк в Python
- Преобразование объекта в строку
- Форматирование строк с f-строками
- Фильтрация элементов с помощью islice
- Частичное совпадение пользовательского ввода в Python 3.10
- Преобразование текста в нижний регистр
- Замеры производительности в Python
- Игра «Камень, ножницы, бумага» — Python
- Получение частей дроби
- Подсчет элементов в Python
- Поиск наиболее частого элемента
- Возведение в квадрат с помощью itertools
- Форматирование данных с помощью pprint
- Особенности множеств в Python
- Объединение коллекций в Python
- Использование функции product
- Функция rsplit() в Python
- Создание GUI с Tkinter: Entry
- Многострочные комментарии в Python
- Установка и использование модуля Wikipedia















