Сначала в синтаксисе Python допускается только определенное количество символов оператора. Точка ".
" не является допустимым оператором.
Эта страница (на самом деле эта страница относится к модулю Python operator
, но соглашение об именах такое же, как у datamodel , а содержание более организовано) перечислены все доступные операторы и соответствующие методы экземпляра. Например, если вы хотите использовать «@
» в качестве оператора, вы можете написать декоратор так:
import functools
class Composable:
def __init__(self, func):
self.func = func
functools.update_wrapper(self, func)
def __matmul__(self, other):
return lambda *args, **kw: self.func(other.func(*args, **kw))
def __call__(self, *args, **kw):
return self.func(*args, **kw)
Для проверки:
@Composable
def add1(x):
return x + 1
@Composable
def add2(x):
return x + 2
print((add1 @ add2)(5))
# 8