У меня проблема с цитонизацией моего кода на Python.Я попытался воспроизвести самый простой случай ошибки, которую я получаю.
Вот иллюстрация кода, который я хочу процитировать:
def some_decorator_with_arg(arg):
def decorator(func):
def wrapper(x):
return func(x) + arg
return wrapper
return decorator
class some_class():
def __init__(self):
pass
@staticmethod
@some_decorator_with_arg(1)
def some_method(a):
return a
print(some_class().some_method(1))
Это работает без проблем в чистом Python,Но когда я кодирую этот код, он выдает ошибку во время выполнения:
print (some_class (). Some_method (1))
TypeError: wrapper () принимает ровно один аргумент(2 дано)
Компиляция запускается без проблем.Если я напишу @some_decorator_with_arg(arg=1)
, я получу еще одну ошибку:
@ some_decorator_with_arg (arg = 1)
Ошибка типа: some_decorator_with_arg () не принимает аргументов без ключевого слова
Кто-нибудь знает решение этой проблемы?