argument python 參數 舉例


 

舉例

例1:
def
multipute(x,y): x = 2 y[0] = ['spam'] return x,y X = 1 L = [1,2] X,L = multipute(X, L) print('參數,x 是函數作用域內的變量名,第一個賦值對函數沒有影響,它僅僅把本地變量x修改為引用一個完全不同的對象,並沒有改變調用者作用域中名稱x 的綁定。y也是引用的本地變量名,只有在修改的對象大於比函數生命更長的時候,才會影響到調用者') print(X,L)


例2:
#默認參數和關鍵字參數 def f(a,b=2,c=3): print(a,b,c) print('###默認參數和關鍵字參數') f(1) f(1,3,4)
例3:
def func1(spam,eggs,toast=0,ham=0): print(spam,eggs,toast,ham) func1(1,2,3,4) func1(toast=1,eggs=2,spam=3)

例4:
##任意參數*args,python 將所有位置相關的參數搜集到一個新的元組中,並將這個元組賦值給args def e(*args): print(args) print('###任意參數*args,python 將所有位置相關的參數搜集到一個新的元組中,並將這個元組賦值給args') e() e('a',2)

例5:
##任意參數**args,python 將所有位置相關的參數搜集到一個新的字典中,並將這個字典賦值給args def m(**args): print(args) print('##任意參數**args,python 將所有位置相關的參數搜集到一個新的字典中,並將這個字典賦值給args') m() m(a=1,b=2,c=3)
例6:
##混合參數演示 def n(a,*pargs,**args): print(a,pargs,args) print('##混合參數演示結果') n(1) n(1,2,3,4,c=5,m=6) n(1,34,c=4,m=5)

例7:
###解包參數 def l(a,b,c,d): print(a,b,c,d) print('###解包參數') args = (1,2) args += (3,4) l(*args) args = {'a':2,'b':3,'c':4} args['d'] =5 l(**args) l(1,*(2,10),**{'d':5}) l(1,*(2,11),d=10)

例8:
###下面的例子是通過傳遞任何發送進來的參數來支持具有任意參數的任意函數 def tracer(func2,*pargs,**kargs): print('calling:', func2.__name__) return func2(*pargs,**kargs) def func2(a,b,c,d): return a +b+c+d print('###tracer 搜集參數,然后var args調用語法來傳遞它') print(tracer(func2,1,2,c=20,d=40))

 

輸出結果

例1: 

參數,x 是函數作用域內的變量名,第一個賦值對函數沒有影響,它僅僅把本地變量x修改為引用一個完全不同的對象,並沒有改變調用者作用域中名稱x 的綁定。y也是引用的本地變量名,只有在修改的對象大於比函數生命更長的時候,才會影響到調用者
2 [['spam'], 2]

 例2: 

###默認參數和關鍵字參數
1 2 3
1 3 4

 例3: 

1 2 3 4
3 2 1 0

 例4: 

###任意參數*args,python 將所有位置相關的參數搜集到一個新的元組中,並將這個元組賦值給args
()
('a', 2)

 例5: 

##任意參數**args,python 將所有位置相關的參數搜集到一個新的字典中,並將這個字典賦值給args
{}
{'b': 2, 'c': 3, 'a': 1}

 例6: 

##混合參數演示結果
1 () {}
1 (2, 3, 4) {'m': 6, 'c': 5}
1 (34,) {'m': 5, 'c': 4}

 例7: 

###解包參數
1 2 3 4
2 3 4 5
1 2 10 5
1 2 11 10

 例8: 

###tracer 搜集參數,然后var args調用語法來傳遞它
calling: func2
63

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM