问题:这是从哪里来的:-*-编码:utf-8-*-
Python将以下内容识别为定义文件编码的指令:
# -*- coding: utf-8 -*-
我确实在(-*- var: value -*-
)之前看到过这种说明。它从何而来?完整规范是什么,例如,值可以包含空格,特殊符号,换行符,甚至-*-
本身吗?
我的程序将编写纯文本文件,我想使用这种格式在其中包含一些元数据。
回答 0
这种指定Python文件编码的方式来自PEP 0263-定义Python源代码编码。
GNU Emacs也可以识别它(请参阅Python语言参考,2.1.4编码声明),尽管我不知道它是否是第一个使用该语法的程序。
回答 1
# -*- coding: utf-8 -*-
是Python 2的东西。在Python 3+中,源文件的默认编码已经是UTF-8,并且该行是无用的。
pyupgrade
是一个可以在代码上运行的工具,用于从Python 2中删除这些注释和其他不再有用的遗留物,例如让所有类都继承自object
。
回答 2
回答 3
在PyCharm中,我将其省略。它将关闭底部的UTF-8指示器,并警告该编码为硬编码。不要以为您需要上面提到的PyCharm评论。