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...