我有這樣的結構:Python的變化自我繼承
class Foo:
def __init__(self, val1):
self.val1 = val1
def changeToGoo(self)
HOW???
class Goo(Foo):
def __init__(self, val1, val2):
super(val1)
self.val2 = val2
a = Foo(1)
a.changeToGoo()
「一」是現在富
的一個實例,現在我想改變它是粘粘的一個實例,通過使用方法「changeToGoo」,並添加其他值。
這怎麼能在Python中完成?
我曾嘗試:
self.__class__ = Goo
,但是當我檢查:
type(a)
它仍然是富,而不是GOO。
什麼是你正在試圖解決的實際問題? – NPE
請詳細說明你爲什麼要這麼做。 – reindeer
你永遠不需要爲它的一個子類拋出一個超類,這是一個設計缺陷的標誌。 –