给定类类型,如何在Python中创建实例?
假设我有这个:给定类类型,如何在Python中创建实例?,python,oop,Python,Oop,假设我有这个: class whatever(object): def __init__(self): pass 这个功能是: def create_object(type_name): # create an object of type_name 我希望能够像这样调用create\u对象: inst = create_object(whatever) inst = whatever() 并获取任何内容的实例。我认为这应该是可行的,不使用eval,我想知道如何做
class whatever(object):
def __init__(self):
pass
这个功能是:
def create_object(type_name):
# create an object of type_name
我希望能够像这样调用create\u对象
:
inst = create_object(whatever)
inst = whatever()
并获取任何内容的实例。我认为这应该是可行的,不使用eval
,我想知道如何做到这一点。请注意,我不是使用字符串作为create\u object
的参数,最明显的方法是:
def create_object(type_name):
return type_name()
如果我理解正确,您想要的是:
def create_object(type_name, *args):
# create an object of type_name
return type_name(*args)
inst = create_object(whatever)
我真的不知道你为什么要这样做,但如果你能告诉我你为什么需要这样一个结构,我会很感兴趣
def create_object(type_name):
return type_name()
当然,您可以完全跳过该函数,并创建任何内容的实例,如下所示:
inst = create_object(whatever)
inst = whatever()
正如你明确地说,arg tocreate\u object
并不意味着是一个字符串,我假设它意味着类型对象本身,就像你给出的create\u object(whatever)
示例中的whatever
确实是类型本身。eval
及其更丑陋、更卑鄙的兄弟,exec
几乎不需要eval
用于评估用户输入,只要您采取措施不使用appliactionglobals
和locals
。您在读什么Python教程,@Geo?您的问题表明教程缺少重要信息。你读了哪一个?类只是Python中普通的一级对象,与其他变量共享相同的名称空间。