《深入理解Python》讀書筆記

2021-06-28 05:43:27 字數 1991 閱讀 9322

1、type函式返回任意物件的資料型別。type可以接收任何東西作為引數——整型、字串、列表、字典、元組、函式、類、模組、甚至型別物件,並返回它的資料型別。可以使用types模組中的常量來進行物件型別的比較。

import mymodule

import types

type(mymodule) == types.muduletype      #返回true

2、str函式將資料強制轉換為字串,每種資料型別都可以強制轉換為字串。

horsemen = ['war','pestilence','famine']

str(horsemen)      #返回"['war','pestilence','famine']"

str(mymodule)       #返回""

str(none)      #返回『none』

3、dir函式返回任意物件的屬性和方法列表,包括模組物件、函式物件、字串物件、列表物件、字典物件......

4、callable函式:它接收任何物件作為引數,如果引數物件是可呼叫的,返回true;否則返回false。可呼叫物件包括函式、類方法、甚至類本身。

5、string.punctuation:它是乙個字串,包含了所有標準的標點符號字元。

6、getattr函式獲取乙個直到執行時才知道名稱的函式的引用。

li.pop 該語句獲取列表的pop方法的引用。

通常,getattr(object , "attribute")等價於 object.attribute

import statsout 

def output(data, format="text"):                              

output_function = getattr(statsout, "output_%s" % format, statsout.output_text)

return output_function(data)   

這個函式呼叫新增了第三個引數,第三個引數是乙個預設返回值,如果第二個引數指定的屬性或者方法沒能找到,澤將返回這個預設返回值。

7、過濾列表

以if開頭的是過濾器表示式,過濾器表示式可以使返回值為真或假的任何表示式,任何經過濾器表示式演算值為真的元素都可以包含在對映中,其他元素都將忽略,不會進入對映表示式,更不會包含在輸出列表中。

li = ['a','mpilgrim','foo','b',c','b','d','d']

[elem for elem in li if len(elem) > 1]        #返回['mpilgrim','foo']

python遍歷整個列表,它將對每個元素執行過濾器表示式,如果過濾器表示式演算值為真,該元素就會被對映,同時對映表示式的結果將包含在返回的列表中。

8、and和or的特殊性質

使用and時,在布林環境中從左到右演算表示式的值。如果布林環境中的所有值都為真,那麼and返回最後乙個值,如果布林環境中的某個值為假,則and返回第乙個假值。

使用or時,在布林環境中從左到右演算值,如果有乙個值為真,or立刻返回該值。如果所有的值都為假,or返回最後乙個假值。注意or在布林環境中會一直進行表示式演算直到找到第乙個真值,然後就會忽略剩餘的比較值。

9、split函式不帶引數:不帶引數的spit按照空白進行分割。

s = "this is\na\ttest"

print s

this is

atest

print s.split()

['this','is','a','test']

10、ljust方法:ljust用空格填充字串以符合指定的長度,如果指定的長度小於字串的長度,ljust將簡單地返回未變化的字串,它決不會截斷字串。

s = 'buildconnectionstring'

s.ljust(30)     #返回'buildconnectionstring         '

s.ljust(20)     #返回'buildconnectionstring'

《深入理解Python特性》讀書筆記

深入理解python特性 的讀書筆記 單前導下劃線 var 單末尾下劃線 var 雙前導下劃線 var 雙前導雙結尾下劃線var 單獨乙個下劃線 物件可以被當作函式使用,只要他實現了 call 方法 函式預設返回值為none,即所有函式都是有返回值的,不寫就是nonelambda x x 1表示就是...

讀書筆記 深入理解Python特性(一)

目錄 1.斷言 2.可維護性建議之逗號的放置 3.上下文管理器和with 4.下劃線 雙下劃線及其他 names alice bob dilbert 而不是names 一行定義,或者 names alice bob dilbert 始終堅持多行定義並且在末行放置逗號,這樣在git diff或者別人r...

讀書筆記 深入理解Python特性(三)

目錄 1.物件轉換為字串 2.淺複製和深複製 3.用抽象基類避免繼承錯誤 4.namedtuple class base def foo self raise notimplementederror def bar self raise notimplementederror class concr...