python继承多重继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python继承多重继承相关的知识,希望对你有一定的参考价值。

1)继承

基类
class BaseClass:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        print "baseclass is inited"
    
    def speak(self,name):
        print "base class is speak:%s"  %name
        
if __name__ == "__main__":
    b = BaseClass()
派生类
import BaseModel

class SubClass(BaseModel.BaseClass):
    def __init__(self,name,age,salary):
        BaseModel.BaseClass.__init__(self,name,age)  调用基类的函数,需要加上类名
        self.salary = salary
        print "SubClass is inited and salary is:%s" %self.salary
        
    def talk(self,sth):
        print "%s talking %s"  %(self,name,sth)
        BaseModel.BaseClass.speak(self,sth)
        
if __name__ == "__main__":
    s = SubClass(‘John‘,1,800)
    s.talk("a story")

上述例子,在派生类里面重新定义了__init__方法;要是没有定义的话,默认调用基类里面的构造方法.


2)多重继承

多重继承算法

class D(object):  
    def foo(self):  
        print "class D"  
  
class B(D):  
    pass  
  
class C(D):  
    def foo(self):  
        print "class C"  
  
class A(B, C):  
    pass  
  
f = A()  
f.foo()  

新式类的结果为class C(A--B--C-D-object);老式类结果为class D(A-B-D-C--object);


本文出自 “孔小发爱吃鱼” 博客,谢绝转载!

以上是关于python继承多重继承的主要内容,如果未能解决你的问题,请参考以下文章

python系统学习14类的继承与创新

Python类的多重继承问题深入分析

超级混乱的python多重继承 super()

Python面向对象——多重继承

python--多重继承

Python多重继承用法 Python周末学习