形參:在定義函式時,括號內的引數成為形參
特點:形參就是變數名
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=
print(x)print(y)print(kwargs)
foo(1,2,z=3,a=1,b=2) #**
六 命名關鍵引數
即在*後面定義的形參稱為命名關鍵字引數,必須是被以關鍵字實參的形式傳值
def foo(name,age,*args,***='male',group):print(name)print(age)print(args)print(***)print(group)
foo('alex',18,19,20,300,group='group1')
形式引數和實在引數
形式引數 值形式引數 變數形式引數。函式或過程定義時的引數為形式引數。實在引數 函式或過程呼叫時的引數為實在引數。1 值形式引數 值形參的作用 值形參從與它位置對應的實參中接受資料並把資料傳送到所在的過程或函式中。當過程或函式被呼叫時,系統為每個值形參開闢臨時的儲存單元,並按從左到右的順序,把實在引...
形式引數的問題
形式引數的問題 基本型別 形式引數的改變不影響實際引數 引用型別 形式引數的改變直接影響實際引數 形式引數是基本型別 class demo 形式引數是引用型別 class student class studentdemo class argstest 形式引數 基本型別 太簡單,不是我今天要講解的...
形式引數的問題
類 要的是該類的物件 抽象類 要的是該抽象類的子類物件 介面 要的是該介面的子實現類的物件 類 該類的物件 class student class studentdemo 測試類 public class studenttest 抽象類 該抽象類的子類物件 abstract class teache...