假设我有这个:
class whatever(object):
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud)
而这个功能:
def create_object(type_name):
# create an object of type_name
Run Code Online (Sandbox Code Playgroud)
我希望能够这样称呼create_object:
inst = create_object(whatever)
Run Code Online (Sandbox Code Playgroud)
并获取一个实例whatever.我认为这应该是可行的而不使用eval,我想知道如何做到这一点.请注意,我没有使用字符串作为参数create_object.
def create_object(typeobject):
return typeobject()
Run Code Online (Sandbox Code Playgroud)
正如你明确地说arg to create_object并不是一个字符串,我认为它本身就是一个类型对象本身,就像create_object(whatever)你给出的例子一样,whatever其实就是类型本身.