Python 编码注释格式

最初,我已经学会了在 Python 2.7 中以这种方式指定源代码编码:

# -*- coding: utf-8 -*-

现在我才注意到,PEP263 也允许这样做:

# coding=utf-8

这些之间有什么区别吗?编辑器兼容性,跨平台等怎么样?

Python 3 怎么样?python 3是否仍然需要此注释,或者python 3中的任何代码默认为utf-8?


慕桂英3389331
浏览 218回答 2
2回答

慕标琳琳

看看PEP3120将 python 源代码的默认编码更改为 UTF-8因此,对于 python 3.x,可以在文档中找到:如果 Python 脚本第一行或第二行中的注释与正则表达式 coding[=:]\s*([-\w.]+) 匹配,则将此注释作为编码声明处理 [...]推荐编码表达式的形式是:#&nbsp;-*-&nbsp;coding:&nbsp;<encoding-name>&nbsp;-*-这也被 GNU Emacs 认可,以及#&nbsp;vim:fileencoding=<encoding-name>这被 Bram Moolenaar 的 VIM 认可。如果未找到编码声明,则默认编码为 UTF-8因此,带回家的信息是:python 3.x 不需要指定 utf-8,因为它是默认值编码行的编写方式在某种程度上是个人选择(只是文档中的推荐),它只需要匹配正则表达式。

白猪掌柜的

从 Python 3 开始,默认编码是 utf-8。您仍然可以使用特殊格式的 comment 更改编码# -*- coding: <encoding name> -*-。该文档建议使用,因为它是由GNU Emacs的也认识到这一点的编码表达。由于 python 检查前两行是否与 regex 匹配coding[=:]\s*([-\w.]+),因此# coding=utf-8也可以确保 utf-8 编码,但 GNU Emacs 无法识别它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python