升级到 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,那么你做什么并不重要。