Python 使用google样式的docstrings键入注释
当使用谷歌风格的docstring和类型注释时,会出现双重类型提示 对于如何避免这种情况,社区是否有共识 恼人的双重类型:Python 使用google样式的docstrings键入注释,python,Python,当使用谷歌风格的docstring和类型注释时,会出现双重类型提示 对于如何避免这种情况,社区是否有共识 恼人的双重类型: def sum(a: int, b: int) -> int: """ blah blah Args: a (int): value 1 b (int): value 2 Returns: int: summed values "&quo
def sum(a: int, b: int) -> int:
""" blah blah
Args:
a (int): value 1
b (int): value 2
Returns:
int: summed values
"""
return a + b
应该像这样将类型从docstring中删除吗
def sum(a: int, b: int) -> int:
""" blah blah
Args:
a: value 1
b: value 2
Returns:
summed values
"""
return a + b
我没有看到其他人提到这一点,但我不是唯一一个不确定最佳方法的人。这是非常重要的,但我认为如果您有合适的名称和类型注释,枚举docstring中的所有参数没有多大价值
def sum(a: int, b: int) -> int:
"""Returns the result of adding the inputs together."""
return a + b
在现实生活中,有了这个具体的例子,我可能会:
def sum(a: int, b: int) -> int:
"""Does exactly what it says."""
return a + b
由于参数是两个
int
s,结果是另一个int
,函数名是sum
,这是一个非常普通的英语单词,意思是“当你把其他东西加在一起时得到的东西”,我认为没有必要作进一步的解释(除了确认这不是一个技巧之外)。是的,您只需要Args和Returns中的类型提示或注释,而不是两者都需要
参考资料 根据报告: “如果代码不包含相应的类型批注,则说明应包括所需的类型。” 斯芬克斯博士在其著作中也鼓励了这一点:
def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
"""Example function with PEP 484 type annotations.
Args:
param1: The first parameter.
param2: The second parameter.
Returns:
The return value. True for success, False otherwise.
"""