0
Python类包含命名空间,函数dir
列出命名空间的内容。列出python命名空间中的所有元素
object
命名空间包含几个函数,例如函数__subclasses__
,它们在调用时会返回一个包含所有已知类的列表,该列表是object
的子类。
的dir(object)
输出是:
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__']
的__subclasses__
功能还没有上市,但它的存在,尝试:object.__subclasses__()
。
我明白,一个类可以改变__dir__
字典定制什么dir
显示,但是这不是object
的情况下,实际上object.__dir__
抛出一个例外。
不过,当我使用IPython自动完成时,__subclasses__
函数就在那里。我如何获得IPython使用的相同元素列表,以便我知道__subclasses__
也在那里?
“Python类只是命名空间” - 不是它们不是。 – user2357112
@ user2357112:你能详细说一下吗?从python文档[这里](https://docs.python.org/2/tutorial/classes.html)我读到:*当类定义保持正常(通过结束)时,创建一个类对象。这基本上是由类定义创建的名称空间的内容的一个包装; * –
虽然类对象包装类声明的名称空间,但说一个类只是一个名称空间,就像说人类只是左腿。命名空间只是该类的一部分。 – user2357112