我应该以编码信息启动py文件吗?

时间:2018-07-02 18:15:54

标签: python utf-8 formatting pep8

您能告诉我如何格式化我的.py文件吗?

从某些来源来看,我发现所有文件都应以以下开头:

# coding : utf-8
# PEP-8

GitHub上的某些人这样做:

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

但是,例如Google既不使用这两个文件,也不使用带有许可证信息的开始文件:

# Copyright (C) 2018 Google Inc.
# Licensed under http://www.apache.org/licenses/LICENSE-2.0 <see LICENSE file>

什么是最好的并被接受的方式?

1 个答案:

答案 0 :(得分:3)

要视情况而定。

Python 2使用ASCII作为源文件的默认编码。

Python 3的默认值为UTF-8。

因此,如果您打算仅支持Python 3+,则不必声明utf-8编码,因为它已经是默认设置。

如果您还打算支持Python 2并且具有非ASCII字符串文字,则应声明一种编码。

如果您的文本编辑器也需要编码声明(例如,如果您的Unix语言环境设置为Latin-1,但您的代码为UTF-8),则Python的宽大语法允许将单个声明用于—例如# -*- coding: utf-8 -*-被emacs和Python识别。

一些官方信息:

Python 3关于unicode支持的文档:https://docs.python.org/3/howto/unicode.html#python-s-unicode-support

PEP 263引入了编码声明语法:https://www.python.org/dev/peps/pep-0263/

关于从Python 3.0开始将默认编码从ASCII更改为UTF-8的PEP 3210:https://www.python.org/dev/peps/pep-3120/