Traffine I/O

日本語

2023-03-10

argsとkwargs

*args と **kwargs とは

Pythonでは、*args**kwargsは一般的に使用される用語であり、関数に可変長引数を渡すために使用されます。*args**kwargsの両方は、関数定義で明示的に定義することなく、可変長の引数を関数に渡すことを許可する特別な構文です。

*argsは "arguments "の略語であり、キーワードでない可変長引数を関数に渡すために使用されます。一方、 **kwargsは "keyword arguments "の略語であり、キーワード引数の可変長を関数に渡すために使用されます。

*args**kwargsを使用すると、異なる数の引数またはキーワード引数を処理できる柔軟な関数を作成したい場合に非常に便利です。

*args の使い方

*argsを使用するには、単に関数定義のパラメータ名の前にアスタリスク(*)を含めます。これにより、追加の位置引数がタプルに収集され、パラメータ値として関数に渡されることがPythonに伝えられます。

*argsを受け入れる関数の例を次に示します。

python
def sum_numbers(*args):
    total = 0
    for number in args:
        total += number
    return total

この例では、 sum_numbers関数は任意の数の引数を受け取り、それらを合計します。例えば、この関数を異なる数の引数で呼び出すことができます。

python
print(sum_numbers(1, 2, 3))  # Output: 6
print(sum_numbers(1, 2, 3, 4, 5))  # Output: 15
print(sum_numbers(2, 4, 6, 8, 10, 12))  # Output: 42

*argsを使用すると、関数定義で各引数を明示的に定義する必要なく、可変数の引数を処理できます。

**kwargs の使い方

**kwargsを使うには、関数のシグネチャに2つのアスタリスク(**)を持つパラメータを定義する必要があります。このパラメータには、関数に渡された全てのキーワード引数の辞書が渡されます。

Pythonで**kwargsを使用する方法の例を次に示します。

python
def my_function(\*\*kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")

my_function(name="John", age=30, city="New York")

この例では、**kwargs構文を使用して可変数のキーワード引数を持つmy_function関数を定義します。その後、関数は、.items()メソッドを使用してキーワード引数の辞書をループ処理し、各キーと値を出力します。

my_function(name="John", age=30, city="New York")で関数を呼び出すと、出力は次のようになります。

python
name: John
age: 30
city: New York

また、辞書を**kwargsを使用する関数に渡す場合は、辞書を展開するために二重アスタリスク(**)構文を使用することもできます。次に例を示します。

python
def my_function(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

my_dict = {"name": "John", "age": 30, "city": "New York"}
my_function(**my_dict)

この例では、3つのキーと値のペアを持つ辞書my_dictを定義します。その後、二重アスタリスク(**)構文を使用して辞書を展開し、その内容を関数のキーワード引数として渡してmy_functionを呼び出します。

このコードを実行すると、前と同じ出力が得られます。

python
name: John
age: 30
city: New York

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!