功能属性寿命

时间:2019-06-11 12:43:52

标签: python memoization function-attributes

我正在写一个函数的备忘,我想将一个属性存储在函数对象中。 函数属性在过程的整个生命周期中是否可用?如果没有,我怎么能做到这一点?

谢谢

1 个答案:

答案 0 :(得分:0)

我将这个问题解释为“我是否可以合理地期望函数对象的用户定义属性在程序的整个生命周期中都可以持久存在?例如,在以下代码中:

def f():
    f.x += 1
    return f.x

f.x = 0

print(f())
print(f())
print(f())

#desired result:
#1
#2
#3

...是否可以保证f.x不会自发地失去其价值?”

函数x的{​​{1}}属性将在整个f的生命周期内保留其值。在全局范围内定义的功能在程序的整个生命周期内都有效。因此,您可以放心使用f进行记忆。