如何以递归方式获取python中所有内置对象的列表?

时间:2013-12-31 06:18:58

标签: python

如何以递归方式获取python中所有内置对象的列表?

我正在寻找的是像dir()这样的函数,它返回一个对象列表而不是字符串。

另外,为什么“dir(__ builtins __。print)”在python的交互模式下失败并出现语法错误?

感谢您的回答!

3 个答案:

答案 0 :(得分:3)

键值对字典:__builtins__.__dict__

仅限对象:__builtins__.__dict__.values()

这些将为您提供一个字典列表,您可以迭代到您的内容!

编辑:不推荐,请参阅以下评论和用户回答

答案 1 :(得分:1)

import __builtin__

__builtin__.__dict__.values()

请注意,还有一个相当令人困惑的名为__builtins__的对象。不要用它;它可能无法一致地工作:

  

CPython实现细节:大多数模块的名称为__builtins__(注意's')作为其全局变量的一部分提供。 __builtins__的值通常是此模块或此模块的__dict__属性的值。由于这是一个实现细节,因此Python的替代实现可能不会使用它。

至于__builtins__.print给出语法错误,因为print是一个语句,而不是一个函数。 Python不允许您使用print关键字,除非作为print语句的一部分。

答案 2 :(得分:0)

关于你的第二个问题,这是因为在Python 2中,print不是一个函数或任何类型的对象,而是一个语句。请参阅this previous question