私はいつもどの言語でも eval を使うことにうんざりしていますが、2 つのことを行うためのより良い方法は思いつきません。私が読んだすべてのことから、evAlは悪です(それは悪かったです)。どんな考えでも大歓迎です。別のモジュールからの呼び出し方法に応じて、関数を呼び出すか、属性を設定する辞書を持つモジュールがあります
module Config
some_dict = {1: ["desc 1", "callfunction1()"],
2: ["desc2", "setattr(object, "attribute", "the fun things"]}
等
module other
try:
i = int(input())
eval(Config.some_dict[i][1])
except ValueError:
print("nope")
これを行うためのより安全な方法があるかどうか疑問に思っています。
また、プログラムの実行中にデバッグしようとしている場合:
try:
eval(input())
except:
pass
これは受け入れられるものですか、それともpythonicですか、それとももっと良い方法がありますか? 私はPythonが初めてです(私は主にJSLを実行しているので、すべてがeval(parse())で行われます)。