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