列出python命名空间中的所有元素

enr*_*cis 2 python namespaces class function

Python 类包含命名空间,函数dir列出命名空间的内容。

object命名空间包含若干功能,例如功能__subclasses__是,当被调用时,则返回包含所有已知的类,是的子类的列表object

的输出dir(object)是:

['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__',
 '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
 '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
Run Code Online (Sandbox Code Playgroud)

__subclasses__功能未列出,但它在那里,请尝试:object.__subclasses__()

我知道一个类可以更改__dir__字典以自定义dir显示的内容,但事实并非如此object,实际上object.__dir__会引发异常。

尽管如此,当我使用 IPython 自动完成__subclasses__功能时,该功能就在那里。我怎样才能获得与 IPython 使用的相同的元素列表,以便我知道它也__subclasses__存在?

use*_*ica 5

IPython__subclasses__通过非常普通的方式找到,通过查看type(object). 另一方面,既然object是一个类型,dir对于类型,具体不看type(object)。谁写dir决定眼看元类列表中的属性会被混淆。