我如何使用eval在其他类中进行类定义?
evalstr = str("class MyScreen(Screen):\n\tpass\n")
eval(evalstr)
我想在其他类方法中执行此代码。但是它返回一个错误。
最佳答案
您不希望在这里exec
不在eval
(除了安全问题)
evalstr = str("class MyScreen(Screen):\n\tpass\n")
exec(evalstr)
eval
将仅计算一个表达式并返回其值。 exec
用于执行任意代码字符串作为语句,这是您在这里需要的。但是,严重的是,这是大多数情况下都将要发生的安全灾难,请考虑其他选择(例如,不将代码编写为字符串)。
编辑:
切普纳的答案可能是正确的方法。