Python编码规范

写在前面

本章的Python的编码规范和命名规则来自于:

  1. PEP8官网
  2. CSDN博客

命名规则 (Naming Conventions)

文件名、包名、模块名 - 全小写+下划线命名法
  如:this_is_package

类 - 大驼峰法
  如:ClassName()。

变量 - 全小写+下划线命名法
  如:color = WHITE,this_is_a_variable = 1

注意:
  1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
  2.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。因为python在解释的时候才确定类型。

常量 - 全大写+下划线命名法
  如 : MAX_OVERFLOW,TOTAL。

缩写 - 不提倡
注意,缩写的情况有如下两种:
  1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
  2.约定成俗的缩写方式,例如:
  text 缩写为 txt
  object 缩写为 obj
  number 缩写为 num,等。

关于下划线
  一个前导下划线:表示私有。
  一个后缀下划线:避免关键字冲突。
  以单下划线开头,是弱内部使用标识,from M import * 时,将不会导入该对象(python 一切皆对象)。
  
  两个前导下划线:当命名一个类属性引起名称冲突时使用。
  两个前导和后缀下划线:有特殊用途的对象或者属性。
  以双下划线开头的变量名,主要用于类内部标识类私有,不能直接访问。
  双下划线开头且双下划线截尾的命名方法尽量不要用,这是标识


排版 (Code Lay-out)

缩进
统一缩进,在PEP8标准里写明“推荐使用空格而不是Tab,且每个缩进单位为4个空格”

"Use 4 spaces per indentation level.
... ...
Spaces are the preferred indentation method."

但是在开发中敲4次space键不如敲一次Tab键效率来的高,因此我建议使用Tab作为一次缩进

最大长度
每行最大长度为 79 个字符,如果一行字符数超过80,请换行。
PEP8推荐的较为优雅的断行方式有以下几种:

"The preferred way of wrapping long lines is by using Python's implied line continuation >inside parentheses, brackets and braces. Long lines can be broken over multiple lines by >wrapping expressions in parentheses. These should be used in preference to using a >backslash for line continuation."

1). \ (Backslashes)
如:

with open('/path/to/some/file/you/want/to/read') as file_1, \
        open('/path/to/some/file/being/written', 'w') as file_2:
        file_2.write(file_1.read())

2). 括号 (brackets)
如:

income = (gross_wages +
          taxable_interest +
          (dividends - qualified_dividends) -
          ira_deduction -
          student_loan_interest)

3). 中括号 (braces)

my_list = [
    1, 2, 3,
    4, 5, 6,
    ]
  • 衍生问题: 应该在运算符之前换行还是之后换行?
income = (gross_wages +
          taxable_interest +
          (dividends - qualified_dividends) -
          ira_deduction -
          student_loan_interest)

还是

income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

答案:倾向于后者 (后者风格也被称作Knuth's Style)

空行
类、外层函数之间应该保持2个空行;类内的函数、 变量和函数之间,保持1个空行

注释

  1. 尽量使用英文注释,如果使用中文注释的话,请在文件头部标明(比较好的习惯是,总是把这句话放在.py文件中,无论是否出现中文):
    # -*- coding: utf-8 -*-
  2. 多行引用,请统一使用双引号
"""
... comments here ...
"""
  1. 每个类和函数,尽可能使用如下的注释方式,解释他的功能
class HTTPAdapter(BaseAdapter):  
  """
The built-in HTTP Adapter for urllib3.    
 Provides a general-case interface for Requests sessions to contact HTTP and HTTPS urls by implementing the Transport Adapter interface. 
This class will   usually be created by …… 
"""


def has_capacity(self):  
  """Does the engine have capacity to handle more spiders"""   

写在最后

  • Tip
    如果你使用pycharm开发,在格式规范上,这款IDE会给你很多修改建议,只要你多留心下波浪线

你可能感兴趣的:(Python编码规范)