In PEP 484,类型提示被添加到 Python 3 中,其中包括typing模块。在Python 2中有什么办法可以做到这一点吗?我能想到的就是有一个装饰器添加到方法中来检查类型,但这会在运行时失败,并且不会像提示所允许的那样更早被捕获。
根据Python 2.7 和跨接代码的建议语法在定义类型提示的 PEP 484 中,有一种与 Python 2.7 兼容的替代语法。然而它不是强制性的,所以我不知道它的支持程度如何,但引用 PEP:
某些工具可能希望在必须与 Python 2.7 兼容的代码中支持类型注释。为此,此 PEP 有一个建议的(但不是强制性的)扩展,其中函数注释放置在 # type: 注释中。这样的注释必须紧跟在函数头之后(文档字符串之前)。示例:以下 Python 3 代码:
def embezzle(self, account: str, funds: int = 1000000, *fake_receipts: str) -> None:
"""Embezzle funds from account using fake receipts."""
<code goes here>
等价于以下内容:
def embezzle(self, account, funds=1000000, *fake_receipts):
# type: (str, int, *str) -> None
"""Embezzle funds from account using fake receipts."""
<code goes here>
For mypy
支持,参见Python 2 代码的类型检查.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)