以编程方式访问文档字符串

文档字符串 - 与常规注释不同 - 存储为它们所记录的函数的属性,这意味着你可以以编程方式访问它们。

一个示例函数

def func():
    """This is a function that does nothing at all"""
    return

可以使用 __doc__ 属性访问 docstring:

print(func.__doc__)

这是一个什么都不做的功能

help(func)

在模块 __main__ 中帮助函数 func

func()

这是一个什么都不做的功能

另一个例子功能

function.__doc__ 只是实际的 docstring 作为字符串,而 help 函数提供有关函数的一般信息,包括 docstring。这是一个更有用的例子:

def greet(name, greeting="Hello"):
    """Print a greeting to the user `name`

    Optional parameter `greeting` can change what they're greeted with."""
    
    print("{} {}".format(greeting, name))
help(greet)

在模块 __main__ 中帮助功能 greet

greet(name, greeting='Hello')

向用户打印问候语 name
可选参数 greeting 可以改变他们的欢迎。

文档字符串优于常规评论的优点

在函数中放置没有文档字符串或常规注释会使它不那么有用。

def greet(name, greeting="Hello"):
    # Print a greeting to the user `name`
    # Optional parameter `greeting` can change what they're greeted with.
    
    print("{} {}".format(greeting, name))
print(greet.__doc__)

没有

help(greet)

在模块 main 中帮助函数问候 :

greet(name, greeting='Hello')