Добавление новых операций в 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))
→ Ссылка