2024-05-12 12:48:40 发布
网友
我有类名列表,希望动态创建它们的实例。例如:
names=[ 'foo.baa.a', 'foo.daa.c', 'foo.AA', .... ] def save(cName, argument): aa = create_instance(cName) # how to do it? aa.save(argument) save(random_from(names), arg)
如何在Python中动态创建实例?谢谢!
您可以使用python内置的eval()语句来实例化您的类。 像这样:
eval()
aa = eval(cName)()
注意!
使用eval是危险的,并且是基于代码注入的许多安全风险的关键。
这通常被称为反思或有时是自省。检查一个类似的问题,这些问题对您要做的事情有一个答案:
Does Python Have An Equivalent to Java Class forname
Can You Use a String to Instantiate a Class in Python
假设您已经使用
from [app].models import *
你要做的就是
klass = globals()["class_name"] instance = klass()
您可以使用python内置的
eval()
语句来实例化您的类。 像这样:注意!
使用eval是危险的,并且是基于代码注入的许多安全风险的关键。
这通常被称为反思或有时是自省。检查一个类似的问题,这些问题对您要做的事情有一个答案:
Does Python Have An Equivalent to Java Class forname
Can You Use a String to Instantiate a Class in Python
假设您已经使用
你要做的就是
相关问题 更多 >
编程相关推荐