【问题标题】:Positional only parameters compatibility with python 3.7仅位置参数与 python 3.7 的兼容性
【发布时间】:2020-11-11 01:55:02
【问题描述】:

我想使用 PEP570 中定义的新的仅位置参数语法,但我也想保持与 python 3.7 的兼容性(直接使用 def f(a, /, b): 运行脚本会直接导致语法错误)。有没有办法做到这一点?

如果没有,对于包维护者,他们是否必须在放弃对 python 3.7 的支持之前避免使用新功能?

【问题讨论】:

    标签: python python-3.x python-3.7 python-3.8 pep570


    【解决方案1】:

    简短回答:不,没有办法做到这一点。

    我想从技术上讲,您可能能够在您的 setup.py 中安装一个 hack,以便在安装在旧版本的 Python 上时以编程方式删除仅位置语法。但这进入了极端的混乱领域。在实践中,您的选择是:

    1. 在 3.7 不支持之前不要使用仅位置参数
    2. 为 3.7 及更早版本与 3.8+ 维护单独的代码库
    3. 不要在您自己的项目中支持 3.7 及更早版本,即使它仍然是受支持的 Python 版本;要求用户更新(从 3.x 更新到 3.x+1 所涉及的工作并不极端;这不像十年前放弃对 Python 2 的支持或其他任何事情)

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 2010-10-21
      • 1970-01-01
      • 2018-09-16
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      相关资源
      最近更新 更多