gpt4 book ai didi

python - 初始化函数中的静态成员变量

转载 作者:行者123 更新时间:2023-11-30 23:36:07 25 4
gpt4 key购买 nike

类函数中是否可以有静态变量(如在 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]

最佳答案

class A(object): # subclass object for newstyle class
def func(self, rules=[]):
if not rules:
rules[:] = [8, 7, 6]
rules.append(4)
return rules
<小时/>
>>> a = A()
>>> for x in range(5):
print a.func()


[8, 7, 6, 4]
[8, 7, 6, 4, 4]
[8, 7, 6, 4, 4, 4]
[8, 7, 6, 4, 4, 4, 4]
[8, 7, 6, 4, 4, 4, 4, 4]

关于python - 初始化函数中的静态成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16784469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com