当前位置 > it书童 > 知识体系 > 正文

查看模块内容

知识体系 it书童 2019-10-03 22:10:33 0赞 0踩 265阅读 0评论

模块包含什么

dir() 查看模块或类所包含的全部程序单元

In [1]: import string

In [2]: dir(string)
Out[2]:
['Formatter',
 'Template',
 '_ChainMap',
 '_TemplateMetaclass',
 '__all__',
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_re',
 '_string',
 'ascii_letters',
 'ascii_lowercase',
 'ascii_uppercase',
 'capwords',
 'digits',
 'hexdigits',
 'octdigits',
 'printable',
 'punctuation',
 'whitespace']

以下划线开头的程序单元其实并不希望被其他程序使用,我们可以将其过滤

In [3]: [e for e in dir(string) if not e.startswith('_')]
Out[3]:
['Formatter',
 'Template',
 'ascii_letters',
 'ascii_lowercase',
 'ascii_uppercase',
 'capwords',
 'digits',
 'hexdigits',
 'octdigits',
 'printable',
 'punctuation',
 'whitespace']

也可以使用 __all__ 查看

In [4]: string.__all__
Out[4]:
['ascii_letters',
 'ascii_lowercase',
 'ascii_uppercase',
 'capwords',
 'digits',
 'hexdigits',
 'octdigits',
 'printable',
 'punctuation',
 'whitespace',
 'Formatter',
 'Template']

使用 doc 查看文档

可以使用 help() 函数查看帮助信息

In [5]: help(string.capwords)
Help on function capwords in module string:

capwords(s, sep=None)
    capwords(s [,sep]) -> string

    Split the argument into words using split, capitalize each
    word using capitalize, and join the capitalized words using
    join.  If the optional second argument sep is absent or None,
    runs of whitespace characters are replaced by a single space
    and leading and trailing whitespace are removed, otherwise
    sep is used to split and join the words.

help() 之所以起使用,其实就是读取该程序单元的文档,即 doc 属性

In [11]: print(string.capwords.__doc__)
capwords(s [,sep]) -> string

    Split the argument into words using split, capitalize each
    word using capitalize, and join the capitalized words using
    join.  If the optional second argument sep is absent or None,
    runs of whitespace characters are replaced by a single space
    and leading and trailing whitespace are removed, otherwise
    sep is used to split and join the words.

理论上讲,应该为每个程序单元编写完备而详细的文档信息

使用 file 查看模块的源文件路径

In [12]: string.__file__
Out[12]: '/Users/airmb/.pyenv/versions/3.6.6/lib/python3.6/string.py'

通过阅读优秀的源码可以有效地提高开发者的编码水平

file 属性仅限于用 python 写的模块,有些是用 c 写的,并无此属性

转载须注明出处:https://www.itshutong.com/articles/26/view-module-content
关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
发表评论
我有句话,不知当讲不当讲?
要讲之前请先 登录