我总是厌倦在任何语言中使用 eval 但我想不出更好的方法来做两件事。从我读过的所有内容来看,evAl 都是邪恶的(这很糟糕)。任何想法表示赞赏。我有一个带有字典的模块,该字典可以调用函数或设置属性,具体取决于您从另一个模块调用它的方式
module Config
some_dict = {1: ["desc 1", "callfunction1()"],
2: ["desc2", "setattr(object, "attribute", "the fun things"]}
ETC
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()) 完成的。