Effective python 閱讀筆記

第一章

p4

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.受保護的實例屬性,應以單個下劃線開頭;私有的實例屬性,應以兩個下劃線開頭索引

p8

%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打印時可以重現它所表明的對象

p20

儘可能用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

相關文章
相關標籤/搜索