PEP 263定义如何声明 Python 源代码编码。
通常,Python 文件的前 2 行应以:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
但是我看到很多文件都以:
开头#!/usr/bin/python
# -*- encoding: <encoding name> -*-
=> encoding 而不是 coding。
那么声明文件编码的正确方式是什么?
是否允许编码,因为使用的正则表达式是惰性的?还是只是声明文件编码的另一种形式?
我问这个问题是因为 PEP 不谈论 encoding,它只谈论 coding。
最佳答案
查看文档 here :
"如果 Python 脚本的第一行或第二行中的注释与正则表达式 coding[=:]\s*([-\w.]+)
匹配,则处理此注释作为编码声明”
"这个表达式的推荐形式是
# -*- coding: <encoding-name> -*-
它也被 GNU Emacs 识别,并且
# vim:fileencoding=<encoding-name>
被 Bram Moolenaar 的 VIM 识别。”
因此,您可以在“编码”部分之前放置几乎任何内容,但如果您想 100% 兼容 python-docs-recommendation,请坚持使用“编码”(不带前缀)。
更具体地说,您需要使用 Python 识别的任何内容以及您使用的特定编辑软件(如果它需要/接受任何内容)。例如。 coding
形式能被 GNU Emacs 识别(开箱即用),但 Vim 不能识别(是的,没有通用协议(protocol),它本质上是一个 turf war)。
https://stackoverflow.com/questions/728891/