[python]*argsと*kwargsは何ですか?

4219 ワード

亲戚の弟が学校でコードを勉强し始めたと闻いて、よく闻きました.
今日突然先生は*argsと*kwargsを書いて、これは何ですかと聞きました.
それは可変因子を受け取った時に使う~と堂々と言っていましたが、可変因子が何なのかからいつ使うのかから、私も一瞬ためらうことがありました.

ソース:https://tenor.com/view/pedro-monkey-puppet-meme-awkward-gif-15268759

だからこの文章の目的は?


自信のあるPythonでも、しばらく他の言語に注意しないで書かないと、私のよく知っている知識が散り散りになると思いますが、脳に緩衝が出ないように、一つ一つ整理することにしました.

だから何が*argsですか?


*argsは「可変パラメータ」の変数です.
これはどういう意味ですか.できますが、簡単に言えば、1個または10個の買収数を指定して変更することができます.
では、可変因子を使って数値加算add関数を作成しましょう.
def add(*args):
    result = 0
    for i in args:
        result += i
    print(args)
    return result
    """
    출력 값
 (1, 2, 3, 4, 5)
     15
    """
上記のようにコードを書くことができます.
では、上のコードを一つ一つ見てみましょう.
add関数を宣言した後、パラメータに*argsを設定します.
この場合、パラメータ名のargsが異なっていても関係ありませんが、前に*(星)マークを付けなければなりません.
その後、関数で使用する場合、*以外のパラメータ名しか使用できません.
このときargsを出力すると、値がカッコ()で囲まれているのが見えます.すなわち、*argsで入力したパラメータ値がtuple値として保存されます.

ソース:https://tenor.com/view/clap-clapping-applause-applaud-cheerleader-gif-12591824

では*kwagsは!?


実はargsと変わらない.ただし、*argsがtuple形式で保存されている場合、*kwargsはdickner形式で保存されます.
では*kwargsも一例です!
def info(**kwargs):
    return kwargs


print(info(name="SoShin", age="25"))
"""
출력값
{'name': 'SoShin', 'age': '25'}
"""
以上のようにinfo関数に**kwargsパラメータを加え,パラメータとしてnameとage値を加えた.
そしてprintで関数を出力します.ディクシャナ形式での価格設定が確認できます!!

ソース:https://tenor.com/view/yay-yas-dance-cool-little-girl-gif-14856115
Pythonを初めて勉強したとき、ある人が書いたコードの中でその2つの可変因子を見つけたとき、私も慌てていたのを覚えています.
ネットで検索すると可変因子だとしか教えてくれず、それが何なのかよく説明できなかったので、うろうろした記憶があり、時間が経つにつれて、誰かに聞かれたとき、私も知らなかった.以前私が探した答えのように.
「可変因子だ!」回答:
初めて言語を勉強するときにいつも障害があると言ったら、それを勉強して、もし誰かが私にこれを聞いたら、「私は本当にあなたに分かりやすい説明をするべきです!」私の実力はダメだと思いますが、時間が経つにつれて、それを忘れてしまいました.覚えやすい方法で覚えました.それを防ぐために、今のように努力して文章を書いて、記憶を模索します!:)

コード1つですらすら答えられると聞かれた日まで、皆さん頑張ってください@
ソース:https://tenor.com/view/friends-chandler-joey-good-job-great-job-gif-5336489>