fra*_*ans 3 python arguments type-hinting python-3.x mypy
在 Python 3 中,您可以为函数参数添加描述:
def foo(host: 'ip address for connection')
cool_stuff()
Run Code Online (Sandbox Code Playgroud)
并且您还可以提供预期的类型,稍后可以使用mypy以下方法进行检查:
def foo(host: str)
cool_stuff()
Run Code Online (Sandbox Code Playgroud)
两者在我看来都非常有用 - 有没有办法将两者结合起来并且仍然能够mypy检查一致性?
不,这就是PEP 484编写的部分原因,以提供函数注释和类型提示的清晰和唯一使用。
一个论点指出 PEP 3107 明确支持在函数注释中使用任意表达式。然后认为新提案与 PEP 3107 的规范不兼容。
并继续说:
我们确实希望类型提示最终会成为注解的唯一用途,但这将需要额外的讨论和在 Python 的类型模块最初推出后的弃用期。
考虑了指定两者的替代方案,但由于代码可读性降低而明显被拒绝:
尽管有所有这些选项,但还是流传着一些提议,以允许类型提示和其他形式的注释为单个参数共存。一个提议建议,如果给定参数的注释是字典文字,则每个键代表不同形式的注释,并且键
'type'将用于类型提示。这个想法及其变体的问题是符号变得非常“嘈杂”并且难以阅读。
允许两者同时也违背了这个 PEP 的观点,并破坏了注释的使用。最后,您最好的选择是使用好的 ol' docstrings 来记录参数,并坚持只使用函数注释来进行类型提示。
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |