Python學習(九) 自定義函式

2021-06-16 11:33:08 字數 1395 閱讀 4628

在python中,可以建立4種函式:

全域性函式:可以由建立該函式的同一模組中的任意**呼叫。

區域性函式:定義在其他函式之內,只能由定義的函式呼叫。

lambda函式:是表示式,可以在任何需要使用的地方定義。

1. 全域性函式

def functionname(parameters):

suit

parameters可以使用關鍵字引數,就是為引數指定乙個名字,而不只是使用其位置來呼叫。

函式引數不允許乙個有預設值的引數後面跟沒有預設值的引數,例如:def bad(a, b=1, c):是不允許的。另外,在函式呼叫時,如果使用關鍵字引數的話,可以有嚴格按照引數順序來傳遞引數,可以按照關鍵字來指定特定的引數。在函式呼叫的時候,位置引數必須在關鍵字引數之前。

給定預設引數的時候 ,預設引數實際上是在函式定義的時候建立的,而不是在呼叫函式的時候建立的,這對於固定引數沒有問題,對於可變引數就不太一樣,例如:

if x % 2 == 0:

return lst

每次使用預設引數呼叫這個函式時,lst並不是每次都建立乙個新的lst,而是每次都使用同乙個lst,就好像乙個靜態變數一樣。

另外,我們還可以使用序列拆分操作符(*)來提供位置引數,如果序列的項數比函式需要的引數數目多,可以使用提取分片的方法來提取合適的引數。

還可以將*本身作為引數,用於表明後面不應該再出現位置引數,只能出現關鍵字引數。

同樣,我們還可以使用對映拆分操作符(**)來對對映進行拆分。

2. 全域性變數

在使用全域性變數的時候,經常要用來global語句,其使用是告訴python,某個變數的作用範圍是全域性範圍,對變數的賦值應該應用於全域性變數,而不是建立乙個新一區域性變數。

3.lambda函式

lambda parameters: expression

其中parameters是可選的,如果提供,格式和位置引數相同。expression不能包含分支可迴圈,但可以包含條件表示式,也不能包含return語句。lambda函式的結果是乙個匿名函式。呼叫lambda函式時,返回的結果是對表示式進行計算產生的結果。

4. 斷言

assert bool_expression , optional_expression

如果bool_expression評價為false,就產生乙個assertionerror異常。如果給定可選的optional_expression,就將其用作assertionerror異常的引數。

在軟體發布的時候,我們可以通告python不執行assert語句。這可以通過在執行程式時在命令列指定-o選項來實現,比如:python -o abc.py。另一種方法是將環境變數pythonoptimize設定為o。

Python學習 自定義函式

使用 def 命令建立自定義函式 以python3.4.3版本為例,自定義函式使用方法如下 下例中,return後的 括號 可有可無,但 雙引號 必須要有!本例中,return可用print 替換 def a1 return good morning,doovin 在idle互動介面呼叫 a1 函式...

python學習筆記 自定義函式

1 函式的定義 首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的功能是求兩個數的平方和。首先,def,這個關鍵字通知python 我在定義乙個函式。square sum是函式名。括號中的a,b是函式的引數,是對函式...

python學習之函式自定義

def my abs x if not isinstance x,int,float raise typeerror bad parameter type if x 0 return x else return x以上函式定義了乙個返回絕對值的函式,其中not isinstance x,int,fl...