Python函式(1)函式引數傳遞

2021-10-01 11:28:38 字數 2472 閱讀 6962

1、形式引數

2、實際引數

(1)形式引數:函式定義過程中所傳遞的引數稱為形式引數,函式名後面括號中的引數為』形式引數』,注意形式引數本身沒有實際含義. 只有當實際引數的值傳遞給形式引數時,形參會被當成是乙個臨時容器,儲存該資料,保證函式執行過程中資料的使用

(2)實際引數:函式呼叫過程中傳遞的引數稱為實際引數,函式名後面括號中的引數為』實際引數』,實際引數決定了形式引數的資料型別和具體的資料值。就像劇本選主角一樣,劇本的角色相當於形式引數,而演角色的演員就相當於實際引數

return:關鍵字,函式呼叫結束的標誌,作用是將return後面的內容返回給外界,同時結束本次函式呼叫;

如果return後面有**也不再執行,因此函式呼叫過程中,函式的**必須放在return關鍵字的前面

程式執行過程中必須要設定的引數

def

output

(num)

:#必須引數

print

(num)

output(

30)

程式執行過程中具有預設值的引數

必須引數和預設引數區別:

預設引數和必須引數的區別就是引數是否提前設定好預設值,預設引數在函式呼叫過程中認為可以省略

def

output

(num =0)

:#預設引數

print

(num)

output(

)

語法結構:在必須引數的前面新增 * ,此時引數就變成了可變引數

作用:引數的多少可以根據函式呼叫過程中實際引數的數量靈活增長,

注意可變引數對應的資料型別是乙個元祖型別,可變引數需要放在預設引數的後面

#定義函式求和

defget_sum

(*arguments)

:#可變引數 (以元組形式傳給函式內部)

sum_num =

0for item in arguments:

ifisinstance

(item,

list):

#在python中可以使用type()與isinstance()這兩個函式判斷

sum_num =

sum(item)

#物件型別,而isinstance()函式的使用上比type更加方便

else

: sum_num += item

return sum_num

num = get_sum(1,

2,3,

4,5)

print

(num)

結果:

15
在必須引數的前面寫上**,此時引數變成關鍵字引數,外界呼叫該函式時必須為每乙個資料設定乙個唯一的鍵,或者通過**dict的格式直接將某乙個字典型別的陣列作為該關鍵字引數的資料輸入

(1)

def

output_userinfor

(**kw)

:#關鍵字引數 (以字典形式傳給函式內部)

print

(kw)

for key,value in kw.items():

print

(key,

",",value)

output_userinfor(name =

'小菜菜'

,age =

20,*** =

'男')

結果:

name , 小菜菜

age ,

20*** , 男

(2)

infor =

defoutput_infor

(**kw)

:str

='我叫,今年歲,性別,'

.format

(**kw)

print

(str

)output_infor(

**infor)

結果:

我叫狗剩子,今年23歲,性別男,已婚
在所有引數的最前面設定乙個*,此時後面的所有引數都被看成是提前定義好名字的引數,

外界在呼叫該函式時每乙個引數的名字必須和*後面的引數名字保持一致

def

put(

*,name,***,age)

:print

(name,***,age)

put(name =

20,*** =

30,age =

40)

如果這幾種組合起來作為形參,順序為:

deffun

(必須引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數)

python函式引數傳遞

例子1 def f x x 0 10 a 1,2 f a a 0 輸出 記憶體空間 命名空間 pos1 list 1,2 a pos1 x pos1 對列表a應用這個函式,python會先讓x指向a所在的記憶體。由於x和a共享同乙個物件,修改x 0 會讓a的值相應改變。例子2 def mod x x...

Python的函式引數傳遞

原址 我想,這個標題或許是很多初學者的問題。尤其是像我這樣的對c c 比較熟悉,剛剛進入python殿堂的朋友們 c c 的函式引數的傳遞方式根深蒂固的影響這我們的思維 引用?傳值?究竟是那種呢。呵呵,語言的特性決定了是使用的方法,那麼,現在我們來 一下python的函式引數傳遞方式。在開始之前,我...

python之函式引數傳遞

例一 a 1 def fun a a 2 fun a print a 1 例二a def fun a fun a print a 1 所有的變數都可以理解成是記憶體中乙個物件的 引用 型別是屬於物件的,而不是變數。物件有兩種,可更改 mutable 與 不可更改 immutable 物件。在pyth...