0
0

【Python入門】dictitonaryを使用した関数制御について

Posted at

はじめに

dictに関数を定義して、関数を呼び分ける方法について解説します。
一般的には処理を分けたい場合は分岐処理を行う必要がありますが、キーを使って処理を制御することができます。

一般的な関数呼び分け

関数を呼び分けたい場合、通常であればステータス毎や引数の値からどのような関数を呼び出すか判定を行い、制御する方法になるかと思います。

例えば四則演算を行う場合、引数で渡された関数名で分岐をするのが一般的かと思います。

    def add(a, b):
        return a + b
    
    def sub(a, b):
        return a - b
    
    def mul(a, b):
        return a * b
    
    def div(a, b):
        return a / b
    

    if argv[1] == "add":
        print(add(int(argv[2]), int(argv[3])))
    elif argv[1] == "sub":
        print(sub(int(argv[2]), int(argv[3])))
    elif argv[1] == "mul":
        print(mul(int(argv[2]), int(argv[3])))
    elif argv[1] == "div":
        print(div(int(argv[2]), int(argv[3])))
    else:
        print("error")

dictを使用した関数呼び分け

dictのvalueに関数を定義することでdictから呼び出しが可能になります。
関数呼び出しの分岐処理をする必要がないため、見た目はすっきりします。

    def add(a, b):
        return a + b
    
    def sub(a, b):
        return a - b
    
    def mul(a, b):
        return a * b
    
    def div(a, b):
        return a / b
    
    operations = {
        "add": add,
        "sub": sub,
        "mul": mul,
        "div": div
    }

    if argv[1] in operations:
        print(operations[argv[1]](int(argv[2]), int(argv[3])))
    else:
        print("error")

まとめ

dictitonaryを使用した関数制御について解説しました。
dictに関数制御を行うのはいろいろと応用が利きますので、業務でも利用してみてください。
慣れない人が見るとが少し違和感を感じるかもしれませんが、すぐになれると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0