装饰器问题
本帖最后由 jiwuligege01 于 2021-4-24 10:46 编辑求助各位大佬,运行myfunc1()后,即myfunc1=func2, a=myfunc1,不是应该只会执行到 func2()这一层,为什么func3那一层也会执行
def func1(a=None):
print('我在func1里')
def func2(func):
print('我在func2里')
def func3(*args, **kwargs):
print('我在func3里')
return func3
return func2
# myfunc1 = func1(myfunc1)
@func1()
def myfunc1():
pass
myfunc1()
因为你 func2 返回的是 func3 . func2 return的是func3,并没有带括号啊 {:10_266:} 我明白了。。@func1()=@func2,即myfunc1=func2(myfunc1)
页:
[1]