函式的引數傳遞
傳遞方式:
位置傳參:
實際引數(實參
) 的對應關係與形式引數(形參
)的對應關係是按位置來依次對應的
序列傳參:
序列傳參是指在函式呼叫過程中,用 * 將序列拆解後按位置進行傳遞的傳參方式
序列傳參時,序列拆解的位置將與形參--對應
序列的位置資訊對應相應的形參位置
關鍵字傳參:傳參時,按著形參的名稱給形參賦值,
實參和形參按形參名進行匹配
字典關鍵字傳參:
指實參為字典,將字典用 '**' 拆解後再進行關鍵字傳參的傳參方式
字典的鍵名和形參名必須一致;字典的鍵名必須為字串
(識別符號
);字典的鍵名要在形參中存在
函式的綜合傳參:函式的傳參方式在能確定形參能唯一匹配到相應實參的情況下可以任意組合
位置傳參(序列傳參
) 要在 關鍵字傳參
(字典關鍵字傳參
)的左側
#位置傳參
deffunc(a,b,c): #位置形參
print("a="
,a)
print("b="
,b)
print("c="
,c)func(1,2,3)
#*序列傳參
deffunc(a,b,c):
print("a="
,a)
print("b="
,b)
print("c="
,c)p = [11,34,111111]
func(p[0],p[2],p[1]) #
序列傳參
func(*p)
func(*"
dfv"
)func(*(101,303,202))
#關鍵字傳參
deffunc(a,b,c):
print("a="
,a)
print("b="
,b)
print("c="
,c)func(a='
c',b='
a',c='b'
)#**字典關鍵字傳參
deffunc(a,b,c):
print("a="
,a)
print("b="
,b)
print("c="
,c)d =
func(**d)
defmyfun1(a, b, c):
pass
#呼叫時:
myfun1(100, *[200, 300])
myfun1(*(100, 200), 300)
myfun1(*[100], 200, *(300,))
myfun1(100, c=300, b=200) #
正確myfun1(c=300, b=200, 100) #
錯誤myfun1(100, **)
形參定義
函式的預設引數:def 函式名
(形參名
=預設實參
1, 形參名
2=預設實參
2, ...):
預設引數必須自右至左依次存在,如果乙個引數有預設引數,則其右側的所有引數都必須有預設引數
位置形參:def 函式名
(形參名
1, 形參名
2, ...):
星號元組形參:def 函式名
(*元組形參名
):收集多餘的位置傳參
命名關鍵字形參:def 函式名
(*,
命名關鍵字形參
): 或 def 函式名
(*args,
命名關鍵字形參
):強制所含的引數都必須用關鍵字傳參或字典關鍵字傳參
雙星號字典形參:def 函式名
(**字典形參名
):收集多餘的關鍵字傳參
#預設傳參
def personinfo(name,age=0,addr='不詳'
):
print("
name:
",name,"
age:
",age,"
addr:
",addr)
personinfo(
"bob
",15)
def personinfo(name,age=0,addr='不詳'
):
print("
name:
",name,"
age:
",age,"
addr:
",addr)
personinfo(
"bob
",15)
#*元組形參
def func1(*args):
print("
實參的數量:
",len(args))
print("
實參的值是:
",args)
func1(1,2,3) #
3個實參
func1("
abc",1,2.2,true,none) #
5個實參
#命名關鍵字形參
def func2(p1,*args,p2):
print('
p1:
',p1)
print('
args-length:
',len(args))
print('
args:
',args)
print('
p2:
',p2)
func2(1,*[1,2,3,4,5],p2=2) #
args-length:5 (1, 2, 3, 4, 5)
func2(1,[1,2,3,4,5],p2=2) #
args-length:1 [(1, 2, 3, 4, 5),]
#**字典形參
def func3(**kwargs):
print('
kwargs-length:
',len(kwargs))
print('
kwargs:
',kwargs)
func3(a=2,b=3,c=4,d=5,p2=2) #
kwargs-length:5
func3(l=[1,2,3,4,5],p2=2) #
kwargs-length:2
實參與形參
實參 argument 全稱為 實際引數 是在呼叫時傳遞給函式的引數.實參可以是常量 變數 表示式 函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。形參 parameter 全稱為 形式引數 由於它不是實...
指標形參與引用形參
看了很多關於指標形參和引用形參的解答,不盡人意。指標形參使用情形 1 標準的c中,c沒有引用 2 形參可以為空 引用形參使用情形 1 形參不可以為空,總指向某個物件 指標形參 指標的行為和其他非引用型別一樣,當執行指標拷貝操作時,拷貝的是指標的值,拷貝之後,兩個指標是不同的指標,如 int n 0,...
問號傳參與路徑傳參
需要使用問號來拼接引數,在接受方,使用request.getparameter key 來獲取問號所傳遞過來的值,如果資料型別不為string,還需要手動轉換。可以傳遞多個值,如果使用多個值,使用 來拼接,不會改變路徑級別 使用路徑符號來傳遞引數,優點,可以不用做型別轉換來直接獲取其值。路徑傳參也可...