我有以下代码片段:
def wrapper(func):
def wrapped(*args, **kwargs):
func.var = 0
return func(*args, **kwargs)
return wrapped
@wrapper
def f_out():
print(f_out.var)
你能解释一下为什么跑步f_out()会加薪吗:
AttributeError: 'function' object has no attribute 'var'
编辑
我不得不详细说明,因为答案给了我替代方案,但这不适用于我想要的情况。鉴于以下代码段:
def wrapper(func):
def wrapped(*args, **kwargs):
func.var = 0
ret = func(*args, **kwargs)
print(func.var)
return wrapped
@wrapper
def f_out():
f_out.var = 1
f_out()
print(f_out.var)
我得到作为输出:
0
1
为什么会这样?
一只名叫tom的猫
青春有我
小唯快跑啊
相关分类