3 回答

TA贡献2021条经验 获得超8个赞
您必须提取部分功能foo()以分离函数,然后将装饰器作为函数应用并显式调用它。
def deco_double(f):
def wrapper():
f()
f()
return wrapper
def my_f1():
print("hello")
print("stack")
def my_f2():
print("overflow")
def foo():
deco_double(my_f1)()
deco_double(my_f2)()
foo()

TA贡献1821条经验 获得超6个赞
只需使用装饰器声明两个具有任何名称的@deco_double函数,并在任何其他函数中调用它们,在您的情况下foo(),然后简单地调用foo().
def deco_double(f):
def wrapper():
f()
f()
return wrapper
@deco_double
def func1():
print("hello")
print("stack")
@deco_double
def func2():
print("overflow")
def foo():
func1()
func2()
foo()
此代码的输出。
hello
stack
hello
stack
overflow
overflow
添加回答
举报