Python での*と**の目的
Najwa Riyaz
2023年1月30日
この記事では、Python での*
と**
の目的について説明します。
Python では、単一のアステリックス(*
)と二重のアステリックス(**
)を使用して、可変数の引数を示します。
次のいずれかの方法で、Python 関数に任意の数の引数を渡すことができます。
- 位置引数(
*
) - キーワード引数(
**
)
Python での*
の定義
Python で記号*
を使用して、関数に可変数の位置引数/パラメーターを許可します。
以下の例に従ってください。
def function_singleasterix(*someargs):
for i in someargs:
print(i)
これで、list
または tuple
を使用したドライバーコードは次のようになります。
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
出力:
['Alex', 'Tom', 'John', 'Alice']
ユーザーにパラメーターの名前を知らせたくない場合は、位置のみの引数を使用してください。
たとえば、API では位置のみの変数を使用することをお勧めします。これにより、パラメーターの名前が変更された場合に API が変更された場合の破損を回避できます。
Python での**
の定義
Python で記号**
を使用して、関数に可変数のキーワード引数/パラメーターを許可します。後の引数は、タプルやリストではなく、マッピング(辞書のキーと値のペア)アイテムでなければならないことに注意してください。
以下のサンプルコードに従ってください。
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
上記の例では、keywordargs
は以下のプログラムのように辞書
に関連付けられています。
function_doubleasterix(SNo001="Alex", SNo002="Tom")
出力:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
上記の例では、**keywordargs
はキーワード引数を辞書
キーと値のペアとして提供します。
Python の関数呼び出しでの*
と**
の使用
記号*
および**
は、関数呼び出しでも使用されます。これらを使用して、次のいずれかを使用して可変数の引数を関数に渡します。
- リスト -
*
- タプル-
*
- 辞書 -
**
これがあなたが従うことができるいくつかの例です。
変数 list
を入力として関数を呼び出する。次のように*
を使用する
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
変数 dictionary
を入力として関数を呼び出する。次のように**
を使用する
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
変数タプル
を入力として関数を呼び出する。次のように*
を使用する
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
上記のすべての場合の出力は次のとおりです。
SNo1 = Tom
SNo2 = John
SNo3 = Alice