如何以递归方式获取python中所有内置对象的列表?
我正在寻找的是像dir()这样的函数,它返回一个对象列表而不是字符串。
另外,为什么“dir(__ builtins __。print)”在python的交互模式下失败并出现语法错误?
感谢您的回答!
答案 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。