我们知道,help('obj')
可以查询命名空间存在的模块,类,函数,对象. 在ipython可以用 obj?
来查询其信息. 这里主要介绍, 怎么写help时显示的内容.
help的使用
help是函数,help(内容), 这个内容可以是一个变量, 对象, 或者’函数名’, ‘模块名’, ‘主题’等. 进入后可能很长,按空格
下页,按q
退出.
一般内容部分如下(注意是字符串形式,还是直接形式:对象名/变量名):
- ‘help’: 可以获得一个总体介绍,例如一些词,例如help(‘modules name’)来列出含有该词的模块.不建议使用..
- ‘keywords’: 可以查询所有keywords列表,例如help(‘if’)可以查询关键词
- ‘modules’: 可以查询所有可用模块(包括安装的,但不包含当前目录).例如help(‘os’)
- ‘topics’: 可以查询所有主题, 主题都是大写.例如help(‘CALL’)
- ‘关键词’: 字符串形式(否则会处理为关键词), 可以查询关键词介绍. 包括使用格式, 介绍.如help(‘lambda’)
- ‘模块名’: 没加载的可用模块需要字符串形式,使其可以从关键词库搜索; 加载的模块(如用户模块)可以用直接形式.就是查询模块帮助, 后面介绍.
- ‘主题名’: 查询一些主题,例如调用, 字符串,浮点等.就是说明书了..
- 类名: 如help(str).一句话用法, 介绍, 方法, 数据(属性)描述符, 其余属性, 继承的内容.
- 函数名: 可以查询函数帮助,可用字符串形式. 第一句一般是简介来源,内建,文件等.第二句是格式. 第三句是介绍.
- 变量名: 可以查询变量对象的帮助,类似于类查询,但现实的是对象查询.
- 子内容: 例如模块类的对象, 对象类的方法, 均使用详细调用时的形式,例如help(os.path)
模块设置help信息
- NAME:
__name__
: 模块名, 主程序时是__main__
. 写在模块开头的'...'
字符串是模块名进一步说明. - FILE:
__file__
: 默认就是文件绝对路径(包是__init__
文件). - DESCRIPTION:
__doc__
: 模块说明部分, 可以写在模块开始的'''...'''
第一个字符串段(会跳过前面的注释,空行,以及第一个普通的'...'
名字说明字符串), 也可以用变量赋值形式定义. - PACKAGE CONTENTS: 包内的模块名,包会用(package)说明.无介绍.
- SUBMODULES: 子模块?
- CLASSES: 模块内定义的类介绍及其方法,数据和属性. 包括import * 获得的.先展开列出所有class及子类,再是介绍.
- FUNCTIONS: 模块类定义的一般函数. 包括import * 获得的.
- DATA: 定义的模块全局变量.
- AUTHOR,VERSION,DATE等:
__author__
,__version__
,__date__
: 作为附加信息使用赋值方式定义,也会列在模块后.显示相应大写字符串. 这些叫metadata, 类似还有copyright, email, status, license, credits(数组,有贡献的人)等.
部分特殊变量是会有显示的, 但也有就是特殊__
罢了.而_var
或_var_
变量会作为private变量/函数而不在help中显示信息, 以帮助简化及保护信息.
类设置help信息:
在类的开头定义后写上的第一个字符串段就是类的主要说明,会跳过前面的空行,注释行. ''' ... '''
和'...'
均可.
“Methods defined here/inherited from …”: 本类内定义的/从母类继承的方法
“Data descriptors inherited from”: 本类内定义的/从母类继承的内容描述,例如__dict__
等特殊内容
“Data and other attributes inherited from”: 本类内定义的/从母类继承的属性,是类内定义的变量等.注意不包括函数(包括__init__
)内
函数设置help信息:
在函数定义下面注意缩进的第一个字符串内容('''...'''或'..'
)或者注释内容就是其注解.注意是函数def下面!注意缩进!
比较dir:
dir能列出模块或对象的方法属性等, 以列表返回. 而help则是列出这些信息以外还有介绍,但不好进一步处理.
本博文已合并到Python语法汇总中, 不再更新.