有没有一种快速的方法可以在Python中获得等效的ls()?

时间:2013-12-18 22:03:27

标签: python r

我是Python新手并且通常使用R,并且经常使用ls()来获取当前环境中所有对象的向量,是否在Python中快速执行同样的操作?

1 个答案:

答案 0 :(得分:20)

您可能正在寻找dir

  

不带参数,返回当前本地范围内的名称列表。使用参数,尝试返回该对象的有效属性列表。

这一开始可能并不完全明显,但是当你处于全局范围时(正如你通常在命令行解释器中那样),“当前本地范围”是全局范围(在这种情况下,是__main__模块)。因此,这将返回您定义的所有变量和函数,您导入的所有模块,以及附加到每个模块或仅__main__的一些内容。例如:

$ python3.3
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__']
>>> import sys
>>> i = 2+3
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', 'i', 'sys']

这与sorted(locals().keys())始终相同,但dir()更容易输入。当然,它很好地与dir(sys)并行,以获取sys模块定义的内容,dir(i)以获取该整数对象5等的属性。