Курс 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"

  1. Изменение списка срезом
  2. Профилирование кода
  3. Область видимости переменных
  4. Виртуальное окружение Python
  5. Поиск HTML-элементов с BeautifulSoup
  6. Генерация случайных чисел в Python
  7. Конвертация коллекций в Python
  8. Изучение объектов с помощью dir()
  9. Курс по дообучению ChatGPT
  10. Многострочные комментарии в Python
  11. Оптимизация параметров в Python
  12. Экспорт данных с помощью writefile
  13. Тестирование с responses
  14. Методы и функции в Python
  15. Магические методы в Python
  16. Анонимные функции в Python
  17. Python enumerate() использование
  18. Метод join для объединения строк
  19. Тестирование с unittest
  20. Метод add для класса Vector
  21. Профилирование кода на Python
  22. Цикл while в Python
  23. Работа с срезами в Numpy
  24. Список и кортеж в Python
  25. Измерение времени выполнения кода
  26. Генераторы списков в Python
  27. Участие в LP стейкинге Waves
  28. Создание namedtuple списком полей
  29. Отслеживание выполнения программы с библиотекой tqdm
  30. Настройка шрифта и цвета в Tkinter
  31. Имена объектов в Python
  32. Изменение объектов в Python
  33. Сортировка в Python
  34. Блок else в обработке исключений
  35. Установка и обучение ChatterBot
  36. Встроенные функции Python
  37. Оператор walrus в Python
  38. Асинхронное выполнение задач в Python
  39. Удаление элементов по срезу
  40. Определение наиболее частого элемента с помощью collections.Counter
  41. Подписка на каналы разработчиков
  42. Функция findall() для поиска вхождений строки
  43. Официальный канал Python в Telegram
  44. Декораторы в Python
  45. Методы __repr__ и __str__ в Python
  46. Преобразование данных в Python
  47. Множественное назначение в Python

Marketello читают маркетологи из крутых компаний