[英]Given a class type how do I create an instance in Python?
假設我有這個:
class whatever(object):
def __init__(self):
pass
和這個功能:
def create_object(type_name):
# create an object of type_name
我希望能夠這樣調用create_object
:
inst = create_object(whatever)
並取回的一個實例whatever
。 我認為無需使用eval
就可以做到這一點,我想知道如何做到這一點。 請注意,我沒有使用字符串作為create_object
的參數。
最明顯的方法:
def create_object(type_name):
return type_name()
def create_object(typeobject):
return typeobject()
當你這樣明確地說,對Arg的create_object
並不意味着是一個字符串,我認為它的意思是類型對象本身,就像在create_object(whatever)
你給例子,其中whatever
確實是該類型本身。
如果我理解正確,那么您想要的是:
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()
當然你也可以完全跳過功能,並創建實例whatever
是這樣的:
inst = whatever()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.