Python 代码如果要在注释中描述一个接口的返回值,是否有标准格式?
Python 代码如果要在注释中描述一个接口的返回值,是否有标准格式?
可以参考 google 的 python coding style: https://github.com/google/styleguide/blob/gh-pages/pyguide.md#383-functions-and-methods
以前的公司也用过这个
“”“ Summary.
Details.
:arg1, int: i do this
:arg2, str: i do that
:return, list: i do both
"""
仅供参考
Python里描述接口返回值,最主流和推荐的标准是 reStructuredText (reST) 格式,通常配合 Sphinx 文档生成器使用。这已经是社区事实上的标准。
具体来说,就是在函数或方法的 docstring 里,用 :rtype: 指定返回类型,用 :return: 或 :returns: 描述返回值。
代码示例:
def get_user_info(user_id: int) -> dict:
"""
根据用户ID获取用户详细信息。
:param user_id: 用户的唯一标识符
:type user_id: int
:return: 包含用户信息的字典,格式为 {'id': int, 'name': str, 'email': str}
:rtype: dict
:raises ValueError: 当 user_id 小于等于0时抛出
"""
if user_id <= 0:
raise ValueError("用户ID必须为正整数")
# ... 这里是具体的实现逻辑 ...
return {'id': user_id, 'name': '张三', 'email': 'zhangsan@example.com'}
关键点解释:
:return:或:returns::后面紧跟对返回值本身的文字描述,说明它是什么、包含什么内容。:rtype::后面紧跟返回值的Python类型。如果你的函数返回多种类型,可以用Union表示,例如:rtype: dict or None或:rtype: Union[dict, None]。- 配合类型提示:在Python 3.5+中,应优先使用函数注解(Type Hints) 来声明返回类型(例子中的
-> dict)。这样在docstring的:rtype:部分可以省略,或者只做更详细的补充说明。现代IDE和类型检查工具(如mypy)能直接识别函数注解。
其他常见格式(作为了解):
- Google 风格:也广泛使用,更简洁。
def get_user_info(user_id: int) -> dict: """ 根据用户ID获取用户详细信息。 Args: user_id (int): 用户的唯一标识符。 Returns: dict: 包含用户信息的字典,格式为 {'id': int, 'name': str, 'email': str} Raises: ValueError: 当 user_id 小于等于0时抛出。 """ - NumPy/SciPy 风格:在科学计算领域常见,更详细但写法稍复杂。
总结建议:
对于新项目,强烈建议使用 reST 格式并搭配函数注解,这是最专业和通用的做法。
现在做的类似于 写的,就是标点符号不同,格式一致
那肯定使用标准的 docstring 格式啊
- docstring,主要有 numpy, google, sphinx 三种风格,sphinx 工具支持最完善,个人喜欢 google 风格
2. 用装饰器 格式自己定,很方便生成其他格式
3. 类型注解,标准格式( typing )或者自己定格式,也很方便生成其他格式
用 3.6 吧。
def my_func() -> str: pass
2.7 的话好像是
:rtype:
大兄弟没认真审题啊,站长问的是在注释里描述返回值
sphinx 格式 方便生成 api 文档吧
果然动态语言一旦工程化起来, 都在向静态语言靠拢
“”"
:return: result
:rtype: Dict[str, str]
“”"
如果用 2 的话 https://www.jetbrains.com/help/pycharm/type-hinting-in-product.html
不过还是放弃吧, 换语言吧。
typehint, mypy 了解一下
难道是关于刷存在感的公司的事情?
奇怪, 我之前似乎是在这个帖子下留言“你猜”,然后被你封禁了?
但我无意中发现换个 ip 竟然能登陆?究竟是没有封号?还是?


