Skip to main content
 首页 » 编程设计

python之使用 Python eval 评估类

2025年05月04日15findumars

如何使用 eval 在其他类中创建类定义?

evalstr = str("class MyScreen(Screen):\n\tpass\n") 
eval(evalstr) 

我想在其他类方法中执行此代码。但它会返回一个错误。

请您参考如下方法:

改用type函数:

MyScreen = type("MyScreen", (Screen,), {}) 

这是在运行时创建类的正确方法(事实上本质上就是执行 class 语句所做的,因为 type 也是默认的元类在 Python 中)。

您也可以简单地以“正常”方式定义类;没有什么说 class 语句必须在模块的全局级别:

class Something(object): 
 
    # Define a new class here... 
    class MyScreen(Screen): 
        pass 
 
    def __init__(self): 
        """Initialize a Something object""" 
        # ... or here 
        class MyScreen(Screen): 
            pass