【发布时间】:2019-09-23 13:31:03
【问题描述】:
我有一个装饰器来记录我的脚本中存在的函数:
registry=[]
def register(func):
print('running register(%s)' % func)
registry.append(func)
return func
然后我有一系列的装饰函数:
@register
def func1():
print('running f1')
@register
def func2():
print('running f2')
这行得通,运行脚本后, print(registry) 返回:
[<function func1 at 0x0000000008433950>, <function func2 at 0x0000000008F06AE8>]
然而单独调用函数,例如:
func1()
只返回'running f1':只是函数,没有修饰。
我期待它返回类似'running register( func1) \n running func1' 的内容。
所以我的问题是,当你有一个装饰函数并调用它时;什么时候单独调用函数,什么时候调用修饰函数?
非常感谢。
【问题讨论】: