def greet_decorator(print_name_function): # Decorating a function
def wrapper():
#function as an object
hello_name()
print('\tMr. Sunshine')
return wrapper
#my_obj = greet_decorator(hello_name)
#my_obj()
当我使用Decorator Recursion Error时,任何人都可以向我详细解释这个概念
@greet_decorator
def hello_name():
print('Hello!')
hello_name()
答案 0 :(得分:2)
您使用greet_decorator
装饰器将hello_name
替换为功能wrapper
。 wrapper
尝试调用本身的hello_name
。那是无限递归。
也许您打算调用原始(未经装饰的)函数,该函数作为参数print_name_function
传入。
def greet_decorator(print_name_function):
def wrapper():
print_name_function()
print('\tMr. Sunshine')
return wrapper
@greet_decorator
def hello_name():
print('Hello!')
hello_name()