【python】繼承、多重繼承
阿新 • • 發佈:2017-11-17
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】繼承、多重繼承