取得のために関数をデータ構造に保存する
関数をリストまたはディクショナリに保存すると、インデックスまたはキーに基づいて選択的に実行できます。ただし、関数呼び出しをデータ構造内に格納するという単純なアプローチでは、望ましい結果は得られません。
Python の関数のファーストクラス オブジェクトとしてのサポートは、洗練されたソリューションを提供します。関数をオブジェクトとして扱うことで、辞書を使用して関数をディスパッチできます。キーは関数を表し、値は関数オブジェクト自体です。関数を実行するには、辞書項目を括弧付きの関数として呼び出すだけです。
dispatcher = {'foo': foo, 'bar': bar} dispatcher['foo']()
複数の関数が辞書内にリストとして格納されている場合、ループを使用して各関数を実行できます。
def fire_all(func_list): for f in func_list: f() dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]} fire_all(dispatcher['foobar'])
このアプローチにより、特に特定の関数名を覚えるのが面倒になる多数の関数の場合に、関数の便利な保存と取得が可能になります。
以上がPython データ構造で関数を保存および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。