python程序有哪些编码规范

Python012

python程序有哪些编码规范,第1张

编码格式声明

通常,编码格式声明是必需的。如果 python 源码文件没有声明编码格式,python 解释器会默认使用 ASCII 编码,一旦源码文件包含非ASCII编码的字符,python 解释器就会报错。以 UTF-8 为例,以下两种编码格式声明都是合乎规则的。

缩进

统一使用 4 个空格进行缩进。绝对不要用tab, 也不要tab和空格混用。对于行连接的情况,我一般使用4空格的悬挂式缩进。例如:

引号

自然语言使用双引号

机器标识使用单引号

正则表达式使用双引号

空行

编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行

顶级定义之间空两行,方法定义之间空一行

在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行

导入模块

导入总应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。导入应该按照从最通用到最不通用的顺序分组,分组之间空一行

标准库导入

第三方库导入

应用程序指定导入

命名规范

模块尽量使用小写命名,首字母保持小写,尽量不要用下划线

类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头

函数名一律小写,如有多个单词,用下划线隔开

私有函数可用一个下划线开头

变量名尽量小写, 如有多个单词,用下划线隔开

常量采用全大写,如有多个单词,使用下划线隔开

python 3和2很大区别就是python本身改为默认用unicode编码。

字符串不再区分"abc"和u"abc", 字符串"abc"默认就是unicode,不再代表本地编码、

由于有这种内部编码,像c#和java类似,再没有必要在语言环境内做类似设置编码,比如“sys.setdefaultencoding”

也因此也python 3的代码和包管理上打破了和2.x的兼容。2.x的扩展包要适应这种情况改写。

另一个问题是语言环境内只有unicode怎么输出gbk之类的本地编码。

答按惯例都在(序列化)输出时才转换成本地编码。

比如

file.write("GBK的中文".encode("GBK"))

python环境内字符串用str.encode("GBK")方法输出成字节串用于和其他环境交流。