Pythonでは、特殊な記号を使用して関数に可変数の引数を渡すことができます。これには2つの特殊な記号があります: *args
(非キーワード引数)と**kwargs
(キーワード引数)です。
*argsとは何ですか?
特殊な構文*args
は、Pythonの関数定義で可変数の引数を関数に渡すために使用されます。これは、キーワードを伴わない、可変長の引数リストを渡すために使用されます。*args
を使用すると、事前に定義した形式引数よりも多くの引数を取ることができます。*args
を使用すると、現在の形式引数に任意の数の追加引数を追加できます(追加引数がゼロでも可能)。
例えば、任意の数の引数を掛け合わせる関数を作りたいとします。これは*args
を使用して実現できます。*
を使用すると、*
に関連付けられた変数が反復可能になり、反復処理を行ったり、map
やfilter
などの高階関数を実行したりすることができます。
def myFun (*argv):
for arg in argv:
print(arg)
myFun ('Hello', 'Welcome', 'to', 'GeeksforGeeks')
出力:
Hello
Welcome
to
GeeksforGeeks
**kwargsとは何ですか?
特殊な構文**kwargs
は、Pythonの関数定義でキーワード付きの可変長引数リストを渡すために使用されます。名前kwargs
と二重のアスタリスクを使用します。二重のアスタリスクを使用する理由は、キーワード引数(およびそれらの任意の数)を通過させることができるからです。キーワード引数とは、変数に名前を提供して関数に渡すことです。kwargs
を辞書と考えることができます。それぞれのキーワードを値にマッピングします。そのため、kwargs
を反復処理すると、出力される順序が一定でないように見えます。
def myFun (**kwargs):
for key, value in kwargs.items():
print ("%s == %s" %(key, value))
myFun(first ='Geeks', mid ='for', last='Geeks')
出力:
first == Geeks
mid == for
last == Geeks
以上がPythonで可変長引数を扱う基本的な方法です。これらの概念を理解し、適切に使用することで、より柔軟で再利用可能なコードを書くことができます。