对于某些项目,我想停止支持 Python 2.7(请参阅http://python3statement.org/)以仅使用 Python > 3.6(或者更确切地说是 3.5 + f-string,如 Pypy v6.0)。
如果尝试将包与没有 f-string 的 Python 版本一起使用,第一步可能是修改 setup.py 文件以获得显式错误。
但是要切换到纯 Python 3.6 语法并删除所有
并在许多地方更换
class MyClass(object)
->class MyClass:
super(MyClass, self)
->super()
"{}".format(foo)
->f"{foo}"
我基本上是手动为代码完成了这项工作(实际上我还通过使用 Python 脚本处理代码来自动化一些步骤),我真的看到了不同之处。代码现在不那么冗长了,全局也变得更好了。
我确信我忘记了许多其他可以做的很好的简化,例如我现在使用了很多from pathlib import Path
,但这些更改不那么直接。
您如何将 Python 2.7/3.6 兼容代码转换为干净的 Python 3.6 代码?如何避免手动完成这项无聊的工作?
在第一个答案后编辑
我认为假设的内化(在许多情况下不会附加)不应该阻止我们使用 f-strings,它只是更干净(并且稍微快一点)。
我仍然认为我提到的修改是合理的。