可以将Python中的dir()输出为垂直列表吗?
我在用Python的 dir(variable)
命令来获取 variable
的所有属性和方法。
输出的结果大概是这样的: ['属性', '属性', '方法', '属性', '方法', 等等]
;也就是说,输出是横着的,所以看起来有点难。
有没有办法让 dir()
输出成竖着的一列,像这样:
'attribute',
'attribute',
'method',
'attribute',
'method',
etc.
4 个回答
这不是简单的一行打印,而是 pdir-athesto
这个包的输出效果非常好。它采用了列式展示,并且用颜色来区分不同的方法类型(比如公共的、私有的等等)。
如何安装
$ pip3 install pdir-athesto
如何使用
>>> from pdir import pdir
>>> pdir(list)
另外,你可以通过设置 PYTHONSTARTUP
变量来自动导入这个包。具体可以查看 README 文件中的 自动导入 部分,链接在这里:
https://pypi.org/project/pdir-athesto/
使用 dir(requests)
可以得到一个名字的列表,你可以用这个列表进行循环,然后把每个名字打印出来。通过 .join()
方法,你可以把列表里的所有元素合成一个字符串,并且在每个元素后面加上换行符,这样就能把它们“竖着”打印出来。
这个例子使用的是 Python 3.8:
print("\n".join(dir(requests)))
结果:
ConnectTimeout
ConnectionError
DependencyWarning
FileModeWarning
HTTPError
NullHandler
PreparedRequest
ReadTimeout
Request
RequestException
RequestsDependencyWarning
Response
Session
Timeout
TooManyRedirects
URLRequired
__author__
__author_email__
__build__
__builtins__
__cached__
__cake__
__copyright__
__description__
__doc__
__file__
__license__
__loader__
__name__
__package__
__path__
__spec__
__title__
__url__
__version__
_check_cryptography
_internal_utils
adapters
api
auth
certs
chardet
check_compatibility
codes
compat
cookies
delete
exceptions
get
head
hooks
logging
models
options
packages
patch
post
put
request
session
sessions
status_codes
structures
urllib3
utils
warnings
有一点需要注意,虽然和提问者的问题不完全相关,但可能值得记住(Python 文档):
注意:因为
dir()
主要是为了方便在交互式提示符下使用,所以它提供的名字集合更有趣,而不是严格或一致定义的名字集合,并且它的具体行为可能会在不同版本中有所变化。例如,当参数是一个类时,元类属性不会出现在结果列表中。
你可以用 print
函数配合 *
操作符和 sep
参数,把每个项目拆开,然后用换行符分开。就像这样:
print(*dir(list), sep='\n'))
解释一下:*
操作符可以把一个可迭代的对象(比如列表)里的每个元素都打印出来,而 sep
是 print
函数的一个参数,它可以让你用指定的分隔符来分开这些项目,在这里就是换行符 \n
。
这其实就是一个列表,所以你也可以对它进行循环操作:
for entry in dir(obj):
print repr(entry)
或者你可以使用 pprint.pprint()
这个方法,让列表的显示变得更美观。
下面是 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']