PEP8編碼風格python
1.類方法:一般狀況下,類方法的使用經過@classmethod裝飾器來聲明。函數
class ClassA(object):
@classmethod
def func_a(cls):
print(type(cls), cls)
if __name__ == '__main__':
ClassA.func_a()
ca = ClassA()
ca.func_a()
複製代碼
運行結果:編碼
<class 'type'> <class 'main.ClassA'>spa
<class 'type'> <class 'main.ClassA'>code
2.檢測長度:不要經過檢查長度的方法判斷somelist是否爲空,應該採用 if somelist空值會自動判斷爲False,非空則是True.對象
3.受保護的實例屬性,應以單個下劃線開頭;私有的實例屬性,應以兩個下劃線開頭索引
%r 和 %s 的區別字符串
text ="I am %d years old." %22
print(I said: %s." % text )
print(I said: %r." % text)
複製代碼
運行結果:string
I said: I am22 years old.it
I said:'I am 22 years old.'. // %r 給字符串加了單引號
另外,%r打印時可以重現它所表明的對象
import datetime
d = datetime.date.today()
print("%s" % d)
print("%r" % d)
複製代碼
運行結果:
2018-10-31
datetime.date(2018,10,31) //%r打印時可以重現它所表明的對象
儘可能用enumerate取代range
enumerate 函數在遍歷迭代器時獲知每一個元素的索引。
enumerate 的參數:
第一個參數是遍歷的對象,第二個參數是開始計數時的初始值(默認爲0)。
舉例:
flavor_list = ['skating','mygirlfriend','boastduck']
for i,favor in enumerate(favor_list,1):
print('%d: %s'%(i,flavor))
複製代碼
result:
1: vanilla
2: chocolate
3: pecan
4: strawberry