Просто так код работает.
def typed(func):
def wrapper(*args):
print("in decor")
return func(*args)
return wrapper
@typed
def add(a: int, b: int) -> str:
return a + b
if __name__ == '__main__':
a = 4
b = 2
result = add(a, b)
print(result)
Как только его вставляю в класс - выдает ошибку:
TypeError: add() takes 2 positional arguments but 3 were given
class MyClass:
def typed(func):
def wrapper(*args):
print("in decor")
return func(*args)
return wrapper
@typed
def add(a: int, b: int) -> str:
return a + b
if __name__ == '__main__':
a = 4
b = 2
result = MyClass().add(a, b)
print(result)
Хотя все остается то же самое