Python Args と Kwargs

Python args and kwargs Made Easy

*args**kwargs は恐ろしく見えるかもしれませんが、実際には理解するのはそれほど難しくなく、関数に多くの柔軟性を与える力を持っています。

より深く理解するには、記事 Python *args と **kwargs を簡単に理解する をお読みください。

Args と Kwargs

*args**kwargs を使用すると、関数を呼び出す際に、未定義の数の引数とキーワード引数を渡すことができます。

# 任意の数の位置引数とキーワード引数を受け入れる関数を定義
def some_function(*args, **kwargs):
    pass

# 任意の数の位置引数で呼び出す
some_function(arg1, arg2, arg3)

# 任意の数のキーワード引数で呼び出す
some_function(key1=arg1, key2=arg2, key3=arg3)

# 位置引数とキーワード引数の両方で呼び出す
some_function(arg, key1=arg1)

# または、引数なしで呼び出す
some_function()

Python の慣習

*args**kwargs という単語は慣習です。インタープリタによって強制されるものではありませんが、Python コミュニティでは良い習慣と見なされています。

args

引数は args 変数を通じてアクセスできます。

# *args は位置引数をタプルに収集します
def some_function(*args):
    print(f'Arguments passed: {args} as {type(args)}')

# 複数の引数を渡す - それらは args タプルに収集されます
some_function('arg1', 'arg2', 'arg3')
Arguments passed: ('arg1', 'arg2', 'arg3') as <class 'tuple'>
クイズ

ログインしてこのクイズに回答し、学習の進捗を追跡できます

*args は引数をどのデータ型に収集しますか?
A. リスト
B. タプル
C. 辞書
D. セット

kwargs

キーワードは kwargs 変数を通じてアクセスできます。

# **kwargs はキーワード引数を辞書に収集します
def some_function(**kwargs):
    print(f'keywords: {kwargs} as {type(kwargs)}')

# キーワード引数を渡す - それらは kwargs 辞書に収集されます
some_function(key1='arg1', key2='arg2')
keywords: {'key1': 'arg1', 'key2': 'arg2'} as <class 'dict'>
クイズ

ログインしてこのクイズに回答し、学習の進捗を追跡できます

**kwargs は引数をどのデータ型に収集しますか?
A. リスト
B. タプル
C. 辞書
D. セット

関連リンク