python编码规范

1 代码编码格式
一般来说,声明编码格式在脚本中是必需的。按照国际惯例,文件编码和 Python 编码格式全部为 utf-8 。例如:在 Python 代码的开头,要统⼀加上如下代码:

# -- coding: utf-8 --

若出现 Python编码问题,可按照以下操作尝试解决:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

2 分号
不要在行尾加分号,也不要用分号将两条命令放在同一行。

3 行的最大长度
每行不超过80个字符
以下情况除外:长的导入模块语句;注释里的URL
圆括号、方括号或花括号以内的表达式允许分成多个物理行,无需使用反斜杠。
eg:

month_names = ['Januari', 'Februari', 'Maart',      # These are the
               'April',   'Mei',      'Juni',       # Dutch names
               'Juli',    'Augustus', 'September',  # for the months
               'Oktober', 'November', 'December']   # of the year

如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:
eg:

x = ('这是一个非常长非常长非常长非常长 '
     '非常长非常长非常长非常长非常长非常长的字符串')

4 缩进规则

Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。

eg:

if a==0:
    print("正确")        # 缩进4个空白占位
else:                    # 与if对齐
    print("错误")        # 缩进4个空白占位

或者

# 4 个空格缩进,第一行不需要
foo = long_function_name(
    var_one, var_two, var_three,
    var_four)

5 注释
行注释、块注释、文档注释

行注释:注释应解释自己做了什么,而不是对代码本身的解释
Python中单行注释以 # 开头,例如:

# 这是一个注释 
print("Hello, World!")

块注释
多行注释用三个单引号 ‘’’ 或者三个双引号 “”" 将注释括起来,例如:

''' 
这是多行注释,用三个单引号 
这是多行注释,用三个单引号 
这是多行注释,用三个单引号 
''' 
print("Hello, World!")
""" 
这是多行注释,用三个双引号 
这是多行注释,用三个双引号 
这是多行注释,用三个双引号 
""" 
print("Hello, World!")

文档注释:

要为所有的公共模块,函数,类和方法编写文档说明
非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该在def那一行之后
多行文档注释使用的结尾三引号应该是自成一行

def a():
    '''这是文档字符串'''
    a = 1
    pass
print(a.__doc__)

6 空行
顶层函数和类定义,前后用两个空行隔开
编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
类里面方法定义用一个空行隔开
在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行

class Class01:
    pass
 
 
class Class02:
    def function_01(self):
        pass
 
    def function_02(self):
        pass

7 制表符还是空格不要混用制表符和空格,因为如果混用了,虽然在编辑环境中显示两条语句为同一缩进层次,但因为制表符和空格的不同会导致 Python 解释为两个不同的层次。
在调用 Python 命令行解释器时使用 -t 选项,可对代码中不合法的混合制表符和空格发出警告,使用 -tt 时警告将变成错误,这些选项是被高度推荐的。但是强烈推荐仅使用空格而不是制表符。
空格使用规则:

在二元运算符两边各空一格,比如赋值(=)、比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not),算术操作符两边的空格可灵活使用,但两侧务必要保持一致
不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)
函数的参数列表中,逗号之后要有空格
函数的参数列表中,默认值等号两边不要添加空格
左括号之后,右括号之前不要加添加空格
参数列表, 索引或切片的左括号前不应加空格
当’='用于指示关键字参数或默认参数值时,不要在其两侧使用空格

8 命名规范

模块名命名:模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)

# 正确

import decoder

import html_parser

# 不推荐

import Decoder

变量命名:不要使用字母I (小写的L), O (大写的O), I (大写的I)作为单字符的变量名。在有些字体里面,这些字符无法与数字0和1区分。如果想用I, 可使用L代替。变量名尽量小写, 如有多个单词,用下划线隔开。
常量或者全局变量命名:全部大写,如有多个单词,用下划线隔开
全⼤写+下划线式驼峰

count = 0
this_is_var = 0

函数命名:函数名应该小写,如有多个单词,用下划线隔开。
大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用,保持向后兼容。私有函数在函数前加一个下划线_。

def run():
    pass

def run_with_env():
    pass


class Person():
    def _private_func():
        pass

类命名

类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。
在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。
对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。

class Farm():
    pass

class AnimalFarm(Farm):
    pass

class _PrivateFarm(Farm):
    pass

类里面函数和方法参数

始终要将self作为实例方法的第一个参数。
始终要将cls作为类方法的第一个参数。
如果函数的参数名和已有关键字冲突,在最后加大意下划线比缩写或者随意拼写更好。因此class_比clss更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值