[英]Is it possible to instantiate a class from a string variable in python?
[英]In Python, what's the correct way to instantiate a class from a variable?
假設我有C
級。
我可以編寫o = C()
來創建C
的實例並將其分配給o
。
但是,如果我想將類本身分配給變量然后實例化它,該怎么辦?
例如,假設我有兩個類,例如C1
和C2
,我想做類似的事情:
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse.instantiate()
實際的instantiate()
的語法是什么? 是否足夠調用__new__()
?
o = C2()
這將實現你想要的。 或者,如果您打算使用classToUse,只需使用:
o = classToUse()
希望這可以幫助。
你快到了。 而不是調用instantiate()方法,只需直接調用變量。 它被分配給類,並且類是可調用的:
if (something):
classToUse = C1
else:
classToUse = C2
o = classToUse()
這很簡單,Python無法識別變量是類或函數的位置。 它只是稱之為價值。
class A:
pass
B=A
b=B()
類是一個對象,就像一個實例,一個函數,一個字符串......一個類也是一個實例。 因此,您可以將其存儲在變量中(或者您可以存儲其他任何內容的變量),並且無論它來自何處,都可以使用()調用它。
def f(): print "foo"
class C: pass
x = f
x() # prints foo
x = C
instance = x() # instanciates C
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.