获取没有特殊属性的类对象 __dict__

des*_*lat 1 python oop new-style-class

为了获得所有定义的类属性,我尝试使用

TheClass.__dict__
Run Code Online (Sandbox Code Playgroud)

但这也给了我特殊的属性。有没有办法只获得自定义属性,还是我必须自己“清理”字典?

Chr*_*heD 5

另一种解决方案:

class _BaseA(object):
    _intern = object.__dict__.keys()

class A(_BaseA):
    myattribute = 1

print filter(lambda x: x not in A._intern+['__module__'], A.__dict__.keys())
Run Code Online (Sandbox Code Playgroud)

我不认为这非常强大,可能还有更好的方法。

这确实解决了其他一些答案指出的一些基本问题:

  • 不需要'name convention'基于过滤
  • 提供您自己的魔术方法实现,例如__len__没有问题(在 A 中定义)。