形參:在定義函數時,括號內的參數成為形參
特點:形參就是變量名
def foo(x,y): #x=1,y=2
print(x)
print(y)
實參:在調用函數時,括號內的參數成為實參
特點:實參就是變量值
foo(1,2)
在調用階段實參(變量值)才會綁定形參(變量名)
調用結束后,解除綁定
一、、函數形參分為:
1、位置形參
2、關鍵字形參
二、函數實參分為:
1、位置實參
2、關鍵字實參
def foo(x,y): #x、y為位置形參 print(x) print(y) foo(1,2)#位置實參 def foo(name,age): #x、y為關鍵字形參 print(name) print(age) foo(name=1,age=2)#位置形參
三、注意事項
1、位置實參必須在關鍵字實參的前面
2、一定不要給同一個形參賦多次值
四、默認參數
不用給函數傳遞參數,函數的參數默認帶有值
def foo(x=1,y=2): #x、y為位置形參 print(x) print(y) foo()
注意事項:
默認參數必須放在位置參數之前
默認參數只能在函數定義階段賦值一次,且僅有一次
默認參數應該定義為不可變數據類型
五、可變長參數類開
可變長參數指的是實參的個數多了
實參無非位置實參和關鍵字實參兩種
#形參必須要兩種機制來分別處理按照位置定義的實參溢出的情況:*
#跟按照關鍵字定義的實參溢出的情況:**
1、形參*接收多出來的位置參數轉化為無組
2、多出來的關鍵字參數被**接收轉化為字典
def foo(x,y,*args): #nums=(3,4,5,6,7) print(x) print(y) print(args) foo(1,2,3,4,5,6,7) def foo(x,y,**kwargs): #nums={'z':3,'b':2,'a':1} print(x) print(y) print(kwargs) foo(1,2,z=3,a=1,b=2) #**
六 命名關鍵參數
即在*后面定義的形參稱為命名關鍵字參數,必須是被以關鍵字實參的形式傳值
def foo(name,age,*args,sex='male',group): print(name) print(age) print(args) print(sex) print(group) foo('alex',18,19,20,300,group='group1')