1
假設我有類A1和A2 和具有式A1/A2的元素的類乙。可以繼承元素的類型變化在基類
現在我有一個班級B'(B)(它繼承自B)。 這個類可以使用A1'和A2'代替A1和A2, 這個新類可以以某種方式交換基類中元素的類型嗎?
通常我會說這是不可能的,但因爲這是關於巨蟒...:P
假設我有類A1和A2 和具有式A1/A2的元素的類乙。可以繼承元素的類型變化在基類
現在我有一個班級B'(B)(它繼承自B)。 這個類可以使用A1'和A2'代替A1和A2, 這個新類可以以某種方式交換基類中元素的類型嗎?
通常我會說這是不可能的,但因爲這是關於巨蟒...:P
你的意思是這樣嗎?
class A1(object):
pass
class A1Child(A1):
pass
class A2(object):
pass
class A2Child(A2):
pass
class B(object):
a1_instance = None
a2_instance = None
def __init__(self):
self.a1_instance = A1()
self.a2_instance = A2()
class BChild(B):
def __init__(self):
self.a1_instance = A1Child()
self.a2_instance = A2Child()
b_instance = B()
print b_instance.a1_instance
print b_instance.a2_instance
bchild_instance = BChild()
print bchild_instance.a1_instance
print bchild_instance.a2_instance
非常好!感謝這個示例代碼,我對python印象深刻。再次。 – HWende 2012-04-04 07:18:59
「元素」是指「屬性」在這裏還是別的什麼? – 2012-04-04 07:09:45
你描述的聲音聽起來像標準的[多態性](http://en.wikipedia.org/wiki/Polymorphism_(computer_science)),並帶有正確的類型聲明(總是聲明一個超類型爲引用類型)語言也是如此,只要'A1''和'A2''繼承自'A1'和'A2'。 – BergmannF 2012-04-04 07:12:19
@gnibbler是的,它的確如此 – HWende 2012-04-04 07:21:09