我如何使用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用于执行任意代码字符串作为语句,这是您在这里需要的。

但是,严重的是,这是大多数情况下都将要发生的安全灾难,请考虑其他选择(例如,不将代码编写为字符串)。

编辑:
切普纳的答案可能是正确的方法。

09-25 16:20