簡體   English   中英

在Python中,從變量實例化類的正確方法是什么?

[英]In Python, what's the correct way to instantiate a class from a variable?

假設我有C級。

我可以編寫o = C()來創建C的實例並將其分配給o

但是,如果我想將類本身分配給變量然后實例化它,該怎么辦?

例如,假設我有兩個類,例如C1C2 ,我想做類似的事情:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM