为了账号安全,请及时绑定邮箱和手机立即绑定

Python 编码注释格式

Python 编码注释格式

慕桂英3389331 2021-06-07 21:23:39
最初,我已经学会了在 Python 2.7 中以这种方式指定源代码编码:# -*- coding: utf-8 -*-现在我才注意到,PEP263 也允许这样做:# coding=utf-8这些之间有什么区别吗?编辑器兼容性,跨平台等怎么样?Python 3 怎么样?python 3是否仍然需要此注释,或者python 3中的任何代码默认为utf-8?
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

看看PEP3120将 python 源代码的默认编码更改为 UTF-8

因此,对于 python 3.x,可以在文档中找到:

如果 Python 脚本第一行或第二行中的注释与正则表达式 coding[=:]\s*([-\w.]+) 匹配,则将此注释作为编码声明处理 [...]推荐编码表达式的形式是:

# -*- coding: <encoding-name> -*-

这也被 GNU Emacs 认可,以及

# vim:fileencoding=<encoding-name>

这被 Bram Moolenaar 的 VIM 认可。如果未找到编码声明,则默认编码为 UTF-8

因此,带回家的信息是:

  1. python 3.x 不需要指定 utf-8,因为它是默认值

  2. 编码行的编写方式在某种程度上是个人选择(只是文档中的推荐),它只需要匹配正则表达式。


查看完整回答
反对 回复 2021-06-16
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

从 Python 3 开始,默认编码是 utf-8。您仍然可以使用特殊格式的 comment 更改编码# -*- coding: <encoding name> -*-

文档建议使用,因为它是由GNU Emacs的也认识到这一点的编码表达。

由于 python 检查前两行是否与 regex 匹配coding[=:]\s*([-\w.]+),因此
# coding=utf-8也可以确保 utf-8 编码,但 GNU Emacs 无法识别它。


查看完整回答
反对 回复 2021-06-16
  • 2 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信