默认情况下,Python 3对源代码文件使用UTF-8编码.我应该在每个源文件的开头使用编码声明吗?大约# -*- coding: utf-8 -*-

推荐答案

因为默认值为is UTF-8,所以只有在偏离默认值,或者依赖其他工具(如IDE或文本编辑器)来使用该信息时,才需要使用该声明.

换句话说,as far as Python is concerned,只有当您想要使用不同的编码时,才必须使用该声明.

其他工具,例如编辑器,可以支持类似的语法,这就是为什么PEP 263 specification允许在语法上有相当大的灵活性(它必须是注释,文本coding必须在那里,后面是:=字符,以及可选的空格,后面是公认的编解码器).

请注意,它只适用于Python reads the source code的工作方式.它不适用于执行该代码,因此不适用于打印、打开文件或任何其他I/O操作如何在字节和Unicode之间转换.关于Python、Unicode和编码的更多细节,我强烈建议您阅读Ned Batchelder的Python Unicode HOWTO或非常全面的Pragmatic Unicode talk.

Python-3.x相关问答推荐

使用Pandas 阅读Excel定义的名称和单元格值(&Q;)

如何验证具有内部json字符串的json字符串?

Django 模型类方法使用错误的 `self`

如何立即从asyncio.Task获取异常?

生成具有偶数个 0 和 1 的给定长度的所有二进制数

如何通过 python 使用 auth no priv 获取 SNMPv3?

在不改变 python 中原始数组顺序的情况下,对多维字符串数组进行降序排序?

将 rgb numpy 图像转换为 rgb 列表和相应的索引值

Pandas 值列中列表中元素的计数

通过 requests 库调用 API 获取访问令牌

请求:RecursionError:超出最大递归深度

预分配一个无列表

multiprocessing.Queue 中的 ctx 参数

如果一个失败,如何取消收集中的所有剩余任务?

为什么 2to3 将 mydict.keys() 更改为 list(mydict.keys())?

登录csv文件的正确方法是什么?

使用 Tensorflow 2.0 在 MNIST 上实现自定义神经网络?

类方法和实例方法同名

Pruning in Keras

有没有一种标准方法来确保 python 脚本将由 python2 而不是 python3 解释?