Skip to main content
 首页 » 编程设计

python之如何让 python 将字符串解释为 python 代码

2025年05月04日33insus

我在 Django 中编写了一个函数来根据对象的类型查找对象,其工作方式类似于以下内容:

def lookup(modelType, item_id): 
    try: 
        return eval(modelType).objects.get(pk=item_id) 
    except ObjectDoesNotExist: 
        return None 

lookup(Course, 14) 如果存在 ID 为 14 的 Course 对象,则应返回 Course.objects.get(pk=14)。

这个函数写起来可行吗?谢谢。

请您参考如下方法:

如果你想使用 lookup(Course, 14) 然后这样做。

def lookup( the_model, item_id ): 
    try: 
        the_model.objects.get( pk=item_id ) 
    except the_model.DoesNotExist: 
        return None 

如果您想继续使用您编写的函数,则必须将模型作为字符串传递。

lookup( "类(class)", 14)

还有。 return None 是一个非常糟糕的主意。正确使用异常通常会好得多。