如何在Python 2.7中使用内省来查找模块中特定类的实例?

2024-03-28 23:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python模块,它定义了一个类并实例化了该类的多个实例。我想写一个测试,正确的数字已经被实例化。在

bar = Foo('abc')
baz = Foo('def')
...
quz = Foo('xyz')

在测试中,我尝试了如下方法:

^{pr2}$

这不起作用,因为dir(foo)似乎给出了一个字符串列表。在

有没有一种方法可以在模块中找到特定类的实例?在


Tags: 模块实例方法定义foodefdirbar
1条回答
网友
1楼 · 发布于 2024-03-28 23:15:55

你真的很亲密。使用双等号进行比较,需要使用getattr()按名称检索模块成员:

assert num == len([getattr(foo, x) 
                   for x in dir(foo) 
                   if isinstance(getattr(foo, x), foo.Foo)])

阅读dir()上的documentation可能也有帮助。在

相关问题 更多 >