我有一个包含数千个实例的Python类。
每个实例都包含几个变量。
我需要检索该类的所有实例的特定列表变量的值。
我相信它已经完成......
__dict__
我似乎无法正确获取所需数据的语法。
我知道这是一行简单的代码。有谁知道那段代码是什么?
答案 0 :(得分:1)
正如Klaus D所说,你应该保留一份手册清单。但是,如果所有这些实例都存在于一个函数的本地范围内,则下面的代码显示了如何获取它们。但即使这是可能的,我强烈建议你不做这类事情。
#! /usr/bin/env python
import random
class myclass():
def __init__(self, data):
self.data = data
def main():
random.seed(42)
#Create some instances of myclass
for i in range(10):
s = "a%02d = myclass(%d)" % (i, random.randint(0, 99))
print s
exec(s) in globals(), locals()
#Extract all instances of myclass from the locals() dict
instances = dict((k, v) for k, v in locals().items() if isinstance(v, myclass))
for name in sorted(instances.keys()):
print "%s : %2d" % (name, instances[name].data)
if __name__ == "__main__":
main()
<强>输出强>
a00 = myclass(63)
a01 = myclass(2)
a02 = myclass(27)
a03 = myclass(22)
a04 = myclass(73)
a05 = myclass(67)
a06 = myclass(89)
a07 = myclass(8)
a08 = myclass(42)
a09 = myclass(2)
a00 : 63
a01 : 2
a02 : 27
a03 : 22
a04 : 73
a05 : 67
a06 : 89
a07 : 8
a08 : 42
a09 : 2
答案 1 :(得分:0)