让我们假设我为下面的代码写一个docstring:
def some_thing_cool(age, name):
better_age = age - 20
cooler_name = name + 'awesome'
bday_list = ['cake', 'balloons']
return bday_list
字符串
会不会是这样:
def some_thing_cool(age, name):
"""Something for bday
Args:
age (int) : age of bday person
name (string) : name of bday person
Variable:
better_age (int) : age - 20 for more pleasing age
cooler_name (string) : name + awesome
bday_list (list) : things to remember for bday
Returns:
bday_list (list) : best to return the list
"""
better_age = age - 20
cooler_name = name + 'awesome'
bday_list = ['cake', 'balloons']
return bday_list
型
还是应该这样:
def some_thing_cool(age, name):
"""Something for bday
Args:
age (int) : age of bday person
name (string) : name of bday person
Returns:
bday_list (list) : best to return the list
"""
better_age = age - 20
cooler_name = name + 'awesome'
bday_list = ['cake', 'balloons']
return bday_list
型
最重要的是,为什么它应该是这样或那样的?(不要考虑文档字符串的风格,这在这个问题中并不重要。)我在网上找到的大多数例子在展示如何编写好的文档字符串时都不包含任何变量,这一直在我的脑海中。
3条答案
按热度按时间oxosxuxt1#
一般来说,文档字符串应该只显示函数的输入和输出,并包括一个人类可读的函数 * 做什么 * 的描述。下面是Python文档字符串文档中的一个例子:
字符串
把自己放在一个从未见过代码的读者的Angular 来看。如果我只是想使用你的函数,我真的关心它使用的每个变量吗?我真的应该只关心它接受什么作为输入,它提供什么作为输出。
ikfrs5lh2#
这些变量在函数外部不可用:
字符串
文档字符串用于向想要使用函数的人描述函数。由于变量在函数外部不可用,因此函数的用户不会真正关心它们,它们只是弄乱了文档字符串。您可以在代码中添加注解来描述变量的作用,以便任何阅读您的代码的人都可以理解它。
变量不可用的原因是由于命名空间,您可能需要查看它们。
lmvvr0a83#
有PEP-257,但我个人认为它不够详细
关于PEP:
字符串
我个人在代码中使用以下约定
型
这就是PyCharm自动为您做的事情。