Python関数の可変パラメータ定義とそのパラメータ伝達方式を詳しく解く

1735 ワード

Python関数の可変パラメータ定義とそのパラメータ伝達方式の詳細
pythonにおける関数不定パラメータの定義形式は以下の通りである.
1、 func(*args) 
入力パラメータは、argsにメタグループとして存在します.たとえば、次のようにします.

def func(*args): 
  print args 
 
>>> func(1,2,3) 
(1, 2, 3) 
 
>>> func(*[1,2,3])  #                         
  (1, 2, 3) 

2、func( **kwargs)
入力されたパラメータは、argsに辞書形式で存在します.たとえば、次のようにします.

def func(**kwargs): 
  print kwargs 
 
>>> func(a = 1,b = 2, c = 3) 
{'a': 1, 'c': 3, 'b': 2} 
 
>>> func(**{'a':1, 'b':2, 'c':3})   #                             
{'a': 1, 'c': 3, 'b': 2} 

3、両方ともfunc(*args、**kwargs)を混用しても良い
入力順序は定義順序と同じでなければなりません.ここでは、パラメータリストを不定にし、キーワードパラメータ辞書などです.

def func(*args, **kwargs): 
  print args 
  print kwargs 
 
 
>>> func(1,2,3) 
(1, 2, 3) 
{} 
 
>>> func(*[1,2,3]) 
(1, 2, 3) 
{} 
 
>>> func(a = 1, b = 2, c = 3) 
() 
{'a': 1, 'c': 3, 'b': 2} 
 
>>> func(**{'a':1, 'b':2, 'c':3}) 
() 
{'a': 1, 'c': 3, 'b': 2} 
 
 
>>> func(1,2,3, a = 4, b=5, c=6) 
(1, 2, 3) 
{'a': 4, 'c': 6, 'b': 5} 
 #           
>>> func(1,2,3, a=4, b=5, c=6, 7) 
SyntaxError: non-keyword arg after keyword arg 


もし疑問があれば伝言を残してあるいは当駅のコミュニティに行って討論を交流して、読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!