当我们在调用一些模块时,我们忘记一些函数的参数或返回值等其他细节时,我们可以使用python内置的help函数
当忘记requests模块get函数的用法时,我们可以利用以下代码查看帮助信息
# help(函数名/模块名)
help(requests.get)
应得到有关requests.get()的帮助信息。
Help on function get in module requests.api:
get(url, params=None, **kwargs)
Sends a GET request.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response ` object
:rtype: requests.Response
那么help函数输出的帮助信息是从哪里来的呢?自定义的模块是否可以利用help函数获取帮助信息呢?
1. help函数输出了什么
上面我们利用help函数获取了requests.get函数的帮助信息。下面我们来看一下requests.get函数的源码
def get(url, params=None, **kwargs):
r"""Sends a GET request.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response ` object
:rtype: requests.Response
"""
kwargs.setdefault('allow_redirects', True)
return request('get', url, params=params, **kwargs)
不难发现help函数输出的内容即为requests.get函数的首部及其注释的内容。
2. 利用help函数输出自定义函数的帮助信息
import requests
def about_help(age: int) -> str:
#单行注释1
#单行注释2
'''被三对引号包围的多行注释'''
'''被三对引号包围的多行注释'''
return 'result'
help(about_help)
输出内容
Help on function about_help in module __main__:
about_help(age: int) -> str
被三对引号包围的多行注释
可以看出help函数输出的内容为该函数的函数首部与函数内部的第一个多行注释。
3. 当help函数以模块名作为参数时
如help(requests)
则会输出requests模块对应包中的__init__.py
中的第一个多行注释。
函数中或模块中的第一个多行注释即为该函数或该模块的docstring, docstring会变成该对象的__doc__
属性,可通过如requests.__doc__
调用该属性。
A docstring is a string literal that occurs as the first statement in
a module, function, class, or method definition. Such a docstring
becomes the docspecial attribute of that object.
在python中比较推崇在代码中写“文档”,代码即文档更直观,更方便。