1. 程式人生 > >Python基礎(7):函式

Python基礎(7):函式

函式:被組織好的,可重複使用的,用來實現單一功能或相關聯功能的程式碼塊。

合理利用函式,可以增強應用的模組性,提高程式碼的重複使用率。

比如常用的求絕對值,最大值,字串長度等這些模組,都已經被封裝成內建函式abs(),max(),len()。

當然有一些只對於你個人的專案而言常用的模組,在找不到python內建函式時,就可以選擇自己定義函式。

接下來依此學習函式的定義,返回值,引數,作用域。

函式的定義:

            def  函式名(形參):

                    函式體

                    return 返回值

1,函式名避免使用關鍵字。

2,當不需要傳遞引數時,形參可為空,對於形參的其他要求,在介紹引數時詳細說明。

3,函式體,即為這個函式要執行的操作。

4,返回值。呼叫這個函式後返回的結果。

函式的返回值:

1,返回值為空:

    不寫return語句,或者return None,或者只寫return

    返回值為空即為不需要返回結果。

2,python函式中,返回值只能是一個值。

     return後面只能跟一個物件,當需要多個返回值時,會自動封裝成元組型別。

函式的引數:

python中的形參有四種,必選引數,預設引數,可變引數和關鍵字引數。

必選引數:有些函式呼叫過程必須傳入形式引數,否則會有TypeError異常。例如:


當我們在定義函式的時候,也可以這樣規定,比如def my_add(x,y)就有兩個必選引數,當需要呼叫my_add()時,就必須傳入兩個引數

預設引數:在函式呼叫過程中我們會發現, 有一些引數,變化頻率相對低一點。比如,我們想要定義一個求冪運算的函式,大多數情況下,只要求返回二次冪,但是個別情況下,我們也會要求返回其他三次,四次,五次冪運算,這個時候,就可以通過預設引數來實現。


可變引數:還有一種場景是在你呼叫函式的時候根本不知道會接收多少引數……

*變數名   從*位置開始接收的所有位置引數,會自動被封裝成一個元組。可以解決此類場景。

(位置引數:根據位置來傳遞的引數,區別於關鍵字引數。)


*後面可以跟任何引數名,但一般會用args

關鍵字引數:**變數名  用來接收一個或多個含引數名的引數,將其封裝成dict

作用域

變數的作用域在有些程式語言中也叫做變數的生命週期。

是指變數能應用的範圍,也就是,在你使用這個變數時不會提示not defined錯誤的範圍。

函式內定義的變數,作用域就僅限於此函式,函式意外的地方都不可以用。

當然,python提供了一種特殊標識,global關鍵字,能將區域性變數變成全域性變數。