いーほろよいの技術ブログ

IT技術ブログになります。

Pythonで関数を定義する その3

はじめに

前回の説明でモヤモヤはスッキリしましたでしょうか。

それとも、もっとモヤモヤしましたでしょうか。

あの説明が私の限界なので次に進めます。 

e-horoyoi.hatenablog.com

 今回は任意引数リストのお話です

いくつかの言語を経験されている方でしたら『関数に与える引数を任意に指定したい!』という時があったと思います。(無かった人はあった事にしてください。)

そんな希望を叶えてくれるのが任意引数リストです。

 

任意引数リストって何?

簡単に説明してしまえば引数を任意の数だけ指定できるという事です。

下記のような書き方をします。

def any_args(arg1, *arg2, **arg3):
    print("arg1: ", arg1)
    print("-" * 40)
    for arg in arg2:
        print(arg)
    print("-" * 40)
    for kw in arg3:
        print(kw, ":", arg3[kw])

print("\n===任意引数サンプル===")
any_args("arg1_value",
         "arg2_value1",
         "arg2_value2",
         arg3_1="arg3_value1",
         arg3_2="arg3_value2",
         arg3_3="arg3_value3")

 

 このように可変する引数に対応できる柔軟な書き方が引数名の前に"*"、"**"を指定する事で実現できます。(上記のサンプルでいう*arg2*、*arg3になります。)

GitHubにサンプルプログラムを追記したので実際に動かして確認できます。

github.com

 

関数の定義についてはこの辺で終了したいと思います。

次回はクラスかな...まだ決めてないです。

 

以上、最後までお読みいただきありがとうございます。