非常に単純な python コードで exec を使用し、呼び出される関数を呼び出す代わりにリストします。
呼び出される関数がわかっている場合は、名前付き関数を として定義する辞書を作成し、print
それを の 2 番目の引数として使用できますexec
。
getitemを上書きして呼び出された関数を出力するカスタム辞書クラスを使用しようとしていますがexec
、発行しても役に立ちません:
TypeError: exec: arg 2 must be a dictionary or None
関数呼び出しを一般的な方法でカスタマイズする方法はありますか?
編集:
たとえば、Python で記述された次の構成ファイルがあるとします。
user('foo')
password('foo123')
home('/home/foo')
user('bar')
password('bar123')
home('/home/foo')
このファイルを実行して、そこに含まれる情報を出力する必要があります。次のpythonプログラムでそれを行うことができます:
d = { 'user': print, 'password': print, 'home: 'print }
execfile(filename, d, {})
このアプローチの問題はd
、ファイルに存在するすべての関数で初期化する必要があることです。getitemで何か違うことをしたカスタム辞書を使用しようとしましたが、TypeError
上記が得られました。