【发布时间】:2016-07-31 06:59:45
【问题描述】:
我刚开始学习 python 编程。当我了解是否要列出我编写的所有字符串模块时:
import string
print dir(string)
结果:
['Formatter', 'Template', '_TemplateMetaclass', 'builtins', 'doc', 'file', 'name', 'package', '_float', '_idmap ', '_idmapL'、'_int'、'_long'、'_multimap'、'_re'、'ascii_letters'、 'ascii_lowercase','ascii_uppercase','atof','atof_error','atoi', 'atoi_error','atol','atol_error','大写','capwords', '中心','计数','数字','expandtabs','查找','hexdigits', 'index','index_error','join','joinfields','letters','ljust', 'lower'、'lowercase'、'lstrip'、'maketrans'、'octdigits'、'printable'、 '标点符号','替换','rfind','rindex','rjust','rsplit', 'rstrip','split','splitfields','strip','swapcase','translate', '大写','大写','空白','zfill']
但这是怎么回事:
someString = "someValues"
print dir(someString)
结果:
['添加', '类', '包含', 'delattr', '文档', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs'、'getslice'、'gt'、'hash'、'init', 'le', 'len', 'lt', 'mod', 'mul', 'ne', 'new'、'reduce'、'reduce_ex'、'repr'、'rmod', 'rmul'、'setattr'、'sizeof'、'str'、 '子类挂钩'、'_formatter_field_name_split'、 “_formatter_parser”、“大写”、“中心”、“计数”、“解码”、 '编码','endswith','expandtabs','查找','格式','索引', 'isalnum','isalpha','isdigit','islower','isspace','istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind','rindex','rjust','rpartition','rsplit','rstrip','split', 'splitlines','startswith','strip','swapcase','title','translate', '上','zfill']
为什么结果不一样?
【问题讨论】:
-
因为
someString是str的一个实例,而string是标准库中的一个模块。 -
确实,两个完全不同的东西的
dir()很可能是不同的。 -
RTFM(阅读精美手册):docs.python.org/3/library/functions.html#dir“默认的 dir() 机制对不同类型的对象表现不同”。以下是根据类型显示的项目列表。
标签: python python-2.7