我应该使用的编码声明在Python 3?(Should I use encoding declara

2019-07-17 16:48发布

Python 3中默认使用UTF-8编码的源代码文件。 如果我仍然使用编码声明在每个源文件的开头? 像# -*- coding: utf-8 -*-

Answer 1:

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

换句话说, 尽可能的Python而言 ,只有当你想使用的编码与不同你有使用了上述声明。

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

请注意,它仅适用于Python的读取源代码 。 它并不适用于执行该代码,所以不能打印,打开文件,或者任何其他的I / O操作字节和Unicode之间如何转化。 有关Python,Unicode和编码的详细信息,我强烈建议你阅读Python的Unicode指南 ,或非常彻底务实的Unicode谈话由斯内德尔德。



Answer 2:

不,如果:

  • 整个项目仅使用UTF-8这是一种默认。
  • 而你确定你的IDE工具并不需要在每个文件编码声明。

是的,如果

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

对于多编码的项目:

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

参考:

  • PyCharm不需要那么声明:

在pycharm特定文件中配置编码

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


文章来源: Should I use encoding declaration in Python 3?