类函数中是否可以有静态变量(如在 C++ 中)。
以下内容没有给我想要的东西。
动机是在函数内初始化(非常昂贵的过程)一个查找列表 - 但只有当它被调用时。
同一函数的后续调用不需要再次初始化变量。
有没有成语来实现这一点?
如果函数与类对齐就可以了;这样规则的值就可用于“A”的所有实例
>>> class A:
... def func(self):
... if not hasattr(self.func,"rules"):
... print 'initialize'
... rules=[8,7,6]
... rules.append(4)
... return rules
...
>>> a=A()
>>> for x in range(5):
... print a.func()
...
initialize
[8, 7, 6, 4]
initialize
[8, 7, 6, 4]
initialize
[8, 7, 6, 4]
initialize
[8, 7, 6, 4]
initialize
[8, 7, 6, 4]