使用Python 3.6变量注释提供向后兼容性

时间:2018-06-04 07:31:48

标签: python python-3.6 backwards-compatibility typechecking

我正在尝试创建一个python包(目前不在任何地方),我想使用3.6 python变量注释,即

foo: int = 5

同时仍然支持Python 3.5。

有没有办法在Python 3.5中通过

提供这些样式的变量注释
from __future__ import variable_annotations

或类似的。我知道可以使用注释类型注释,但我希望能够使用这种风格。

1 个答案:

答案 0 :(得分:5)

TLDR :不,您不能在Python 3.5及更早版本中使用变量注释。

首先,Python 3.6.0 changelog报告变量注释是3.5的一项新功能。

第二,PEP 526被定义为backward compatible。根据{{​​3}}:

  

除非正在经历下面的弃用过程,否则行为   API的版本不得在任何两个连续的发行版之间更改。

其中包括:

  

参考所定义的这些结构的语法和行为   手册

因此,PEP 526的“ PEP 387”仅表示Python 3.5(或更严格地说是PEP526之前的版本)语法将在3.6.0中工作,而无需进行更改:变量注释fully backwards compatible

最后,您提到了“注释类型注释”。因此,我将仅提供指向are not mandatory的链接,该链接可用于Python 3.5(此问题的某些读者可能会有用)。