Python編碼規范 -- Python Style Guide


  Python代碼風格規范.

@1:參數縮進:(2種形式)

<1> 

foo = long_function_name(var1, var2,

                         var3, var4)

#第1行有參數, 第2行參數與第1行對齊

<2>

foo = long_function_name(

    var1, var2, var3, 

    var4)

#第1行須沒有參數, 第2行前空4個空格, 第3行與第2行對齊

@2:頂級定義之間空2行, 方法定義之間空1

  類中第1個方法前總是應該空1行, 某些函數內部也可以適當的加空行

@3:不要在逗號, 分號, 冒號前面加空格, 但應該在他們后面加(除了在行尾)

@4:二元運算符兩側應該加空格, 但當”=”用於指示關鍵字參數或默認參數時不要加空格,如:

def complex(read, image=0.0):    # “=”兩側無空格

@5:總是使用最特化的版本,如/usr/bin/python2.4, 而不是/usr/bin/python2

@6:如果不是"簡短,顯然或函數不被外部可見", 任何函數都需要一個文檔字符串.

@7:對於復雜的操作, 應該在其操作開始前寫上若干行注釋, 對於不是一目了然的代碼, 應該在其行尾添加注釋.

@8:如果一個類不繼承自其它類, 就顯式的從object類繼承, 嵌套類也一樣.

#NO------------------------------------
class SampleClass:
  pass 

class OuterClass:
  class InnerClass:
    pass
 

#YES-----------------------------------
class SampleClass(object):
  pass 

class OuterClass(object):
  class InnerClass(object):
    pass
 
class ChildClass(ParentClass):

@9: 盡量用format,而不是+. 但如果兩個變量緊挨着,則使用+.

name = "lxw"
age = 24
x = "{0}, {1}!".format(name, age)   #YES
#x = name + ", " + str(age) + "!"   #NO
sex = "male"
#y = "{}{}".format(name, sex)       #NO
y = name + sex                      #YES 

@10:避免在循環中用+和+=操作符來累加字符串. 由於字符串是不可變的, 這樣做會創建不必要的臨時對象, 並且導致二次方而不是線性的運行時間.

可以將每個子串加入列表, 然后在循環結束后用 .join 連接列表.

#Yes--------------------------
     items = ['<table>']
     for last_name, first_name in employee_list:
         items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name))
     items.append('</table>')
     employee_table = ''.join(items)
#No--------------------------
    employee_table = '<table>'
    for last_name, first_name in employee_list:
        employee_table += '<tr><td>%s, %s</td></tr>' % (last_name, first_name)
    employee_table += '</table>'

@11:為多行字符串使用三重引號,而非三重單引號. 文檔字符串必須使用三重雙引號.

@12:推薦使用with語句以管理文件:

with open("hello.txt") as hello_file:
    for line in hello_file:
        print line

@13:每個導入應該獨占一行

#Yes---------------------
import os
import sys
#No---------------------
import os, sys

@14:Python用下划線作為變量前綴和后綴指定特殊變量。

_xxx    不能用'from module import *'導入
__xxx__  系統定義名字
__xxx    類中的私有變量名

核心風格:避免用下划線作為變量名的開始。

"單下划線" 開始的成員是proctect成員,意思是只有類對象和子類對象能訪問到這些變量;

"雙下划線" 開始的成員是private成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。

 

 

Reference:

Google 開源項目風格指南PYTHON風格規范: http://zh-google-styleguide.readthedocs.org/en/latest/google-python-styleguide/python_style_rules/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM