如果你真的想要一个类、实例或模块的成员,只需使用内置的vars():http://docs.python.org/library/functions.html#vars(它像宣传的那样工作)
如果您希望 current 模块的成员来自函数或类(其中vars() 会做错事),那么您应该改用globals()。
但是,您的问题中的代码和单词不匹配。你说你想访问myClass“内部”的对象,但是你发布的代码显然是在寻找myClass的子类而不是它的内容。
为了补充 Asterisk 的答案,在交互式提示中添加了更多使用此功能的示例:
>>> class Example:
... def method(): pass
...
>>> class SubExample(Example):
... pass
...
>>> class OverrideExample(Example):
... def method():
... pass
...
>>> globals()
{'OverrideExample': <class '__main__.OverrideExample'>, '__builtins__': <module
'builtins' (built-in)>, 'Example': <class '__main__.Example'>, '__name__': '__ma
in__', '__package__': None, '__doc__': None, 'SubExample': <class '__main__.SubE
xample'>}
>>> Example.__subclasses__()
[<class '__main__.SubExample'>, <class '__main__.OverrideExample'>]
>>> vars(Example)
dict_proxy({'__dict__': <attribute '__dict__' of 'Example' objects>, '__module__
': '__main__', '__weakref__': <attribute '__weakref__' of 'Example' objects>, 'm
ethod': <function method at 0x00BF6F18>, '__doc__': None})
>>> vars(SubExample)
dict_proxy({'__module__': '__main__', '__doc__': None})
>>> vars(OverrideExample)
dict_proxy({'__module__': '__main__', 'method': <function method at 0x00C10030>,
'__doc__': None})
>>> vars(Example())
{}
>>> vars(SubExample())
{}
>>> vars(OverrideExample())
{}
注意在模块级别、每个类对象和每个类实例上可见的内容之间的差异。
还要注意,对于给定的类定义,vars() 不会告诉您任何继承的方法。它也不会告诉您通过类实例可用的方法。要正确查看这两者,最好的办法是按照 Noufal 的建议进行操作,然后步行 dir(),为每个属性调用 getattr()。