TypeError при использовании позиционного аргумента в декораторах - PullRequest
1 голос
/ 07 марта 2019

Я получаю следующую ошибку при выполнении простого кода декоратора

"decorator_func () отсутствует 1 обязательный позиционный аргумент: 'original_func'"

Спасибо, если кто-то указывает на проблему, спасибо.

Вот код:

def decorator_func(original_func):
    def wrapper_func(*args, **kwargs):
       return original_func(*args, **kwargs)

    return wrapper_func()

@decorator_func() #also tried without calling i.e. @decorater_func
def displayInfo_func(name, age):
        print('Display Info func ran with arguments ({}, {})'.format(name))

displayInfo_func

Заранее спасибо.

1 Ответ

1 голос
/ 07 марта 2019

Проблема при возврате функции-обертки, которую вы вызываете, и это тоже без каких-либо аргументов.

def decorator_func(original_func):
    def wrapper_func(*args, **kwargs):
       return original_func(*args, **kwargs)

    return wrapper_func #instead of wrapper_func()

@decorator_func() #also tried without calling i.e. @decorater_func
def displayInfo_func(name, age):
    print('Display Info func ran with arguments ({}, {})'.format(name))
...