如何将我自己的"help"信息添加到pythonfunction/class?
How to add my own "help" information to a python function/class?
我知道我可以使用 "help()" 查看软件包中的现有帮助信息。但是我自己写了function/class之后,怎么才能让"help"看到帮助文档呢?我知道 "comment" 的第一行是 doc 属性,但这不是我想要的。
我希望编译出自己的包,其他人可以从"help()"看到。怎么做?
help()
完全基于 __doc__
属性(以及函数参数的内省),因此请确保您的模块、类 和您的函数都有文档字符串。
文档字符串不是评论,它是顶部的裸字符串文字:
"""This is a module docstring, shown when you use help() on a module"""
class Foo:
"""Help for the class Foo"""
def bar(self):
"""Help for the bar method of Foo classes"""
def spam(f):
"""Help for the spam function"""
例如流行的第三方requests
模块有一个文档字符串:
>>> import requests
>>> requests.__doc__
'\nRequests HTTP library\n~~~~~~~~~~~~~~~~~~~~~\n\nRequests is an HTTP library, written in Python, for human beings. Basic GET\nusage:\n\n >>> import requests\n >>> r = requests.get(\'https://www.python.org\')\n >>> r.status_code\n 200\n >>> \'Python is a programming language\' in r.content\n True\n\n... or POST:\n\n >>> payload = dict(key1=\'value1\', key2=\'value2\')\n >>> r = requests.post(\'http://httpbin.org/post\', data=payload)\n >>> print(r.text)\n {\n ...\n "form": {\n "key2": "value2",\n "key1": "value1"\n },\n ...\n }\n\nThe other HTTP methods are supported - see `requests.api`. Full documentation\nis at <http://python-requests.org>.\n\n:copyright: (c) 2016 by Kenneth Reitz.\n:license: Apache 2.0, see LICENSE for more details.\n'
由 help()
直接呈现,连同模块内容(以及递归的内容文档字符串):
>>> help('requests')
Help on package requests:
NAME
requests
DESCRIPTION
Requests HTTP library
~~~~~~~~~~~~~~~~~~~~~
Requests is an HTTP library, written in Python, for human beings. Basic GET
usage:
>>> import requests
>>> r = requests.get('https://www.python.org')
>>> r.status_code
200
[...]
您可以使用 argparse:https://docs.python.org/2/howto/argparse.html。它允许您创建可以自定义的 --help
参数以及添加参数说明。
示例:
parser = argparse.ArgumentParser(description = "Write your help documentation here...")
parser.add_argument('config.txt', nargs='?', help='Write about your positional arguments here')
args = parser.parse_args()
所以当有人用 --help
运行你的程序时,它会输出:
$python yourProgram.py --help
usage: yourProgram.py [-h] [config.txt]
Write your help documentation here...
positional arguments:
config.txt Write about your positional arguments here
optional arguments:
-h, --help show this help message and exit
我知道我可以使用 "help()" 查看软件包中的现有帮助信息。但是我自己写了function/class之后,怎么才能让"help"看到帮助文档呢?我知道 "comment" 的第一行是 doc 属性,但这不是我想要的。
我希望编译出自己的包,其他人可以从"help()"看到。怎么做?
help()
完全基于 __doc__
属性(以及函数参数的内省),因此请确保您的模块、类 和您的函数都有文档字符串。
文档字符串不是评论,它是顶部的裸字符串文字:
"""This is a module docstring, shown when you use help() on a module"""
class Foo:
"""Help for the class Foo"""
def bar(self):
"""Help for the bar method of Foo classes"""
def spam(f):
"""Help for the spam function"""
例如流行的第三方requests
模块有一个文档字符串:
>>> import requests
>>> requests.__doc__
'\nRequests HTTP library\n~~~~~~~~~~~~~~~~~~~~~\n\nRequests is an HTTP library, written in Python, for human beings. Basic GET\nusage:\n\n >>> import requests\n >>> r = requests.get(\'https://www.python.org\')\n >>> r.status_code\n 200\n >>> \'Python is a programming language\' in r.content\n True\n\n... or POST:\n\n >>> payload = dict(key1=\'value1\', key2=\'value2\')\n >>> r = requests.post(\'http://httpbin.org/post\', data=payload)\n >>> print(r.text)\n {\n ...\n "form": {\n "key2": "value2",\n "key1": "value1"\n },\n ...\n }\n\nThe other HTTP methods are supported - see `requests.api`. Full documentation\nis at <http://python-requests.org>.\n\n:copyright: (c) 2016 by Kenneth Reitz.\n:license: Apache 2.0, see LICENSE for more details.\n'
由 help()
直接呈现,连同模块内容(以及递归的内容文档字符串):
>>> help('requests')
Help on package requests:
NAME
requests
DESCRIPTION
Requests HTTP library
~~~~~~~~~~~~~~~~~~~~~
Requests is an HTTP library, written in Python, for human beings. Basic GET
usage:
>>> import requests
>>> r = requests.get('https://www.python.org')
>>> r.status_code
200
[...]
您可以使用 argparse:https://docs.python.org/2/howto/argparse.html。它允许您创建可以自定义的 --help
参数以及添加参数说明。
示例:
parser = argparse.ArgumentParser(description = "Write your help documentation here...")
parser.add_argument('config.txt', nargs='?', help='Write about your positional arguments here')
args = parser.parse_args()
所以当有人用 --help
运行你的程序时,它会输出:
$python yourProgram.py --help
usage: yourProgram.py [-h] [config.txt]
Write your help documentation here...
positional arguments:
config.txt Write about your positional arguments here
optional arguments:
-h, --help show this help message and exit