Python での*と**の目的
Najwa Riyaz
2023年1月30日
Python
Python Argument
この記事では、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
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe