1. 程式人生 > >python學習筆記3_抽象

python學習筆記3_抽象

數據 一個 可變 字符 可能 python attr def .cn

這一步的學習四個知識點,如何將語句組織成函數,參數,作用域(scope),和遞歸

一、函數

1、抽象和結構

抽象可以節省很多的工作量,實際上它的作用更大,它是使得計算機程序讓人讀懂的關鍵(這也是最基本的要求,不管是讀程序還是寫程序。)

2、創建函數

技術分享 技術分享1、使用def函數就可以定義函數,2、2.0python使用callable(<func>),檢查函數是否可以被調用,3.0python使用hasattr(func,_call_),。3、函數返回一個以上的的值,在元組中返回即可。

2.1、記錄函數

給函數寫文檔,讓使用該函數的人理解兩種方式,一種加入註釋(#開頭)。另一種方式是:直接寫上字符串,這類字符串在其他地方可能非常有用。

技術分享其中的__doc__可以訪問文檔字符串。

2.2、並非真正函數的函數

有些python函數不返回任何東西,在其他語言中可能有別的名稱,但是python中函數就是函數。即便沒有返回值python也會默認返回None。

技術分享技術分享

二、參數魔法

註意 def語句後面的變量通常叫做函數的形式參數,而調用函數的時提供的有值是實際參數,也成參數。

1、我能改變參數嗎?

分兩種情況:1、字符串元組以及數字,這些不可變參數。在函數內修改參數不會影響到從函數外部傳入的參數變量。(因為傳遞的是副本,也就是值類型)

2、字典,list等這些,傳入參數,在函數內部修改會影響到外面傳入的這個參數變量。(因為兩個變量引用同一個列表。想要不影響函數外面的變量指向的list.。可以對這個list做切片,因為切片總是返回的副本。)

技術分享 技術分享

2、為什麽想要修改參數

使用函數修改數據結構(比如字典和list)是將程序抽象化的好方法。

python學習筆記3_抽象