class A(object): def __init__(self): self.some_name = 'A' def print_a(self): print self.some_nameclass B(object): def __init__(self): self.some_name = 'B' def print_b(self): print self.some_nameclass C(A,B): def __init__(self): A.__init__(self) B.__init__(self)if __name__ == '__main__': c = C() c.print_a()
class A(object): def __init__(self,some_name='A'): self.some_name = some_name def print_a(self): print self.some_nameclass B(object): def __init__(self,some_name='B'): self.some_name = some_name def print_b(self): print self.some_nameclass C(A,B): def __init__(self): A.__init__(self,some_name='AAAAA') B.__init__(self,some_name='BBBBB')if __name__ == '__main__': c = C() c.print_a()解决方法 你这里只有一个对象; some_name属性在所有继承类的方法之间共享.你调用A .__ init__,将其设置为A,然后调用B .__ init__,将其更改为B.
另请注意,您正在调用基本方法;使用超级:
class A(object): def __init__(self): self.some_name = 'A' super(A,self).__init__() def print_a(self): print self.some_nameclass B(object): def __init__(self): self.some_name = 'B' super(B,self).__init__() def print_b(self): print self.some_nameclass C(A,B): def __init__(self): super(C,self).__init__()if __name__ == '__main__': c = C() c.print_a()总结
以上是内存溢出为你收集整理的Python中的多重继承问题!全部内容,希望文章能够帮你解决Python中的多重继承问题!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)