2012-08-16 35 views
3

給出一個實例在Python一類的新實例,如果我有一個對象,說x,那麼如何創建一個新的對象y,使xy是同一類的?在Python中創建

在Java中,我想會是這個樣子的代碼:

Object y = x.getClass().newInstance(); 
+0

記住類是Python中的靈活的概念,給使用自定義元類和描述符的能力。 – Antimony 2012-08-16 00:22:16

回答

4

你也許可以這樣做:

y = x.__class__() 

y = type(x)() #New style classes only 

而且,如果你想知道如何創建一個新的風格類,所有你需要做的就是繼承自object(或者使用python 3.X)

+0

類型不適用於舊式課程。此外,這可能不適用於元類。 – Antimony 2012-08-16 00:21:21

+1

感謝您對舊式類的評論(我*從不*使用它們,所以我沒有想到這一點。)就metaclass而言,我也不使用它們,所以我不能使用它們幫助那個。儘管知道我的解決方案可能會失敗,但我很高興。感謝您也指出了這一點。 – mgilson 2012-08-16 00:25:09

+0

我看不出爲什麼元類有問題。對我來說問題是你沒有參數調用構造函數,它可能需要一些。 – JBernardo 2012-08-16 00:31:59

2

幾乎是相同的Java:

y = x.__class__()