为什么测试“dict”的成员资格形式不好?

2024-09-28 23:40:53 发布

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

我问这个question关于消除对象的__dict__成员资格测试。提供了一个解决方案,但是使用if x in __dict__有点不够优雅。你知道吗

正如我在那篇文章中提到的,我更喜欢使用hasattr,但它导致了RecursionError。你知道吗

会籍考试有什么问题?你知道吗


Tags: 对象inif成员解决方案dicthasattrquestion
1条回答
网友
1楼 · 发布于 2024-09-28 23:40:53

我不完全确定我是否理解你的另一篇文章,但请注意__dict__只包含实例的属性,而不包含类的属性。e、 g

>>> class Foo(object):
...   x = 1
... 
>>> Foo().__dict__
{}

但是,hasattr调用会告诉您,Foo的实例确实具有x属性:

>>> hasattr(Foo(), 'x')
True

所以,不管是什么情况,我们都可以看到这两个习语在某些非常常见的情况下有着不同的含义。你知道吗

相关问题 更多 >