升级到 Python 3 时是否应该删除 __future__ 导入和 unicode 字符串?
Should you remove __future__ imports and unicode strings when upgrading to Python 3?
我一直在将代码库升级到 Python 3。我一直在做的一件事是 运行 2to3
并查看脚本的建议。它不断建议删除所有 __future__
导入以及任何 unicode 字符串,例如u"python2 unicode str"
(这对我来说很有意义,因为 Python 3 个字符串默认是 unicode)。
据我所知,这些更改不会以任何方式改变代码的功能 - 它似乎只是 "clean up"。那是对的吗?有什么理由保留 __future__
导入和 unicode 字符串吗?有明确的理由删除它们吗?
注意:我不关心保持 Python 2 兼容性 - 它不受支持。
没有理由删除它们,也没有任何强有力的理由保留它们。他们是 guaranteed to remain available, but do nothing, on Python versions that enable them by default:
MandatoryRelease records when the feature became part of the language; in releases at or after that, modules no longer need a future statement to use the feature in question, but may continue to use such imports.
No feature description will ever be deleted from __future__
如果你确定你永远不会 运行 Python 2,那么你做什么并不重要。
我一直在将代码库升级到 Python 3。我一直在做的一件事是 运行 2to3
并查看脚本的建议。它不断建议删除所有 __future__
导入以及任何 unicode 字符串,例如u"python2 unicode str"
(这对我来说很有意义,因为 Python 3 个字符串默认是 unicode)。
据我所知,这些更改不会以任何方式改变代码的功能 - 它似乎只是 "clean up"。那是对的吗?有什么理由保留 __future__
导入和 unicode 字符串吗?有明确的理由删除它们吗?
注意:我不关心保持 Python 2 兼容性 - 它不受支持。
没有理由删除它们,也没有任何强有力的理由保留它们。他们是 guaranteed to remain available, but do nothing, on Python versions that enable them by default:
MandatoryRelease records when the feature became part of the language; in releases at or after that, modules no longer need a future statement to use the feature in question, but may continue to use such imports.
No feature description will ever be deleted from
__future__
如果你确定你永远不会 运行 Python 2,那么你做什么并不重要。