gpt4 book ai didi

python - Python中函数的静态成员?

转载 作者:IT老高 更新时间:2023-10-28 20:48:38 27 4
gpt4 key购买 nike

Possible Duplicate:
Static class variables in Python
What is the Python equivalent of static variables inside a function?

如何在 Python 中使用静态字段?

例如,我想计算该函数被调用了多少次 - 我该怎么做?

最佳答案

如果你想计算一个方法被调用了多少次,无论是哪个实例调用它,你都可以使用这样的类成员:

class Foo(object):
calls=0 # <--- call is a class member
def baz(self):
Foo.calls+=1

foo=Foo()
bar=Foo()
for i in range(100):
foo.baz()
bar.baz()
print('Foo.baz was called {n} times'.format(n=foo.calls))
# Foo.baz was called 200 times

当您以这种方式定义 调用 时:

class Foo(object):
calls=0

Python 将键值对 ('calls', 0) 放在 Foo.__dict__ 中。

可以通过Foo.calls访问Foo 的实例,例如 foo=Foo(),也可以通过 foo.calls 访问它。

要为 Foo.calls 分配新值,您必须使用 Foo.calls = ...。实例不能使用 foo.calls = ...,因为这会导致 Python 在 foo.__dict__ 中放置一个新的不同的键值对,其中保存了实例成员。

关于python - Python中函数的静态成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111543/

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