Python関数の可変パラメータ定義とそのパラメータ伝達方式の例の詳細

1657 ワード

この例では、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


ここで述べたことが皆さんのPythonプログラム設計に役立つことを願っています.