美文网首页python
Python编码规范

Python编码规范

作者: 小北_ed82 | 来源:发表于2018-06-07 19:26 被阅读0次

    写在前面

    本章的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编码规范

        本文链接:https://www.haomeiwen.com/subject/dtlnsftx.html