在程序结束时,我希望将类的所有实例中的特定变量加载到字典中。
例如:
class Foo():
def __init__(self):
self.x = {}
foo1 = Foo()
foo2 = Foo()
...
假设实例的数量会有所不同,我希望将 Foo() 每个实例的 x 字典加载到一个新字典中。我该怎么做呢?
我在 SO 中看到的示例假设已经有了实例列表。
跟踪实例的一种方法是使用类变量:
class A(object):
instances = []
def __init__(self, foo):
self.foo = foo
A.instances.append(self)
在程序结束时,您可以像这样创建字典:
foo_vars = {id(instance): instance.foo for instance in A.instances}
只有一个列表:
>>> a = A(1)
>>> b = A(2)
>>> A.instances
[<__main__.A object at 0x1004d44d0>, <__main__.A object at 0x1004d4510>]
>>> id(A.instances)
4299683456
>>> id(a.instances)
4299683456
>>> id(b.instances)
4299683456
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)