可以在python中输出dir()作为垂直列表吗?

时间:2014-06-01 13:42:00

标签: python

我在Python中使用dir(variable)命令来获取variable的所有属性和方法。

输出如下所示:['attribute', 'attribute', 'method', 'attribute', 'method', etc.];即,输出是水平的,因此很难细读。

有没有办法让dir()输出一个垂直列表,如下所示:

'attribute', 
'attribute', 
'method', 
'attribute', 
'method', 
etc.

2 个答案:

答案 0 :(得分:6)

它只是一个列表,所以你也可以遍历它:

for entry in dir(obj):
    print repr(entry)

或者您可以使用pprint.pprint()将列表格式化为“漂亮的”#39;对你而言。

演示pprint模块本身:

>>> import pprint
>>> pprint.pprint(dir(pprint))
['PrettyPrinter',
 '_StringIO',
 '__all__',
 '__builtins__',
 '__doc__',
 '__file__',
 '__name__',
 '__package__',
 '_commajoin',
 '_id',
 '_len',
 '_perfcheck',
 '_recursion',
 '_safe_repr',
 '_sorted',
 '_sys',
 '_type',
 'isreadable',
 'isrecursive',
 'pformat',
 'pprint',
 'saferepr',
 'warnings']

答案 1 :(得分:0)

它不像在一行中打印,但是 pdir-athesto 包有一个很好的输出演示。它使用列样式并使用颜色来设置方法类型(公共、私有等...)之间的差异

comparation dir vs pdir-athesto

如何安装

$ pip3 install pdir-athesto

如何使用

>>> from pdir import pdir
>>> pdir(list)

此外,您可以通过设置 PYTHONSTARTUP 变量来自动导入包。检查 README 文件中的 Atumatic import 部分 https://pypi.org/project/pdir-athesto/