我应该在 Python3中使用编码声明吗?

Python 3默认情况下对源代码文件使用 UTF-8编码。我是否仍然应该在每个源文件的开头使用编码声明?就像 # -*- coding: utf-8 -*-

51775 次浏览

因为默认的 UTF-8,您只需要在偏离默认值时使用该声明,或者如果您依赖于其他工具(如 IDE 或文本编辑器)来使用该信息。

换句话说,对于巨蟒来说,只有当您想要使用不同的编码时,才必须使用该声明。

其他工具,比如你的编辑器,可以支持类似的语法,这就是为什么 PEP 263规范在语法上允许相当大的灵活性(它必须是一个注释,文本 coding必须在那里,后跟 :=字符和可选的空格,后跟一个公认的编解码器)。

注意,它只适用于 Python 读取源代码。它不适用于执行该代码,因此不适用于打印、打开文件或任何其他 I/O 操作如何在字节和 Unicode 之间进行转换。有关 Python、 Unicode 和编码的更多细节,我强烈建议您阅读 Python Unicode或 Ned Batchelder 的非常详细的 < em > 实用 Unicode 讲座

不,如果:

  • 整个项目只使用 UTF-8,这是默认的。
  • 确保 IDE 工具不需要在每个文件中声明编码。

是的,如果

  • 您的项目依赖于不同的编码
  • 或者依赖于许多编码。

对于多编码项目:

如果一些文件被编码在 non-utf-8中,那么即使是这些 编码在 UTF-8你也应该添加编码声明,因为 黄金法则是 Explicit is better than implicit.

参考文献:

  • PyCharm 不需要这样的声明:

为 Pycharm 中的特定文件配置编码

  • Vim 不需要那个声明,但是:
# vim: set fileencoding=<encoding name> :