Добавление новых операций в Python (например ***)
а можно создать новое действие для класса в Python?
Например какой-то магический метод который вызывается при *** или *--
Например:
a = Foo(2)
b = Foo(3)
print(a *** b)
И в классе Foo вызывался какой-нибудь магический метод и обрабатывал это?
Например:
class Foo:
def __init__(self, q):
self.q = q
def __(Что то)__(self, other):
return (self.q + 1) * (other.q + 2)
Ответы (1 шт):
Автор решения: Александр Рассказчиков
→ Ссылка
Нет, к сожалению вы не можете добавлять новые операторы в Python.
Но есть альтернатива. Вы можете добавлять функции к классу, и использовать их в дальнейшем. Не синтаксический сахар, но всё же.
class Foo:
def __init__(self, q):
self.q = q
def triple_multiply(self, other):
return (self.q + 1) * (other.q + 2)
И используем:
a = Foo(2)
b = Foo(3)
print(a.triple_multiply(b))