python學習筆記3_抽象
這一步的學習四個知識點,如何將語句組織成函數,參數,作用域(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_抽象