python继承编程教程_Python实现通过继承覆盖方法示例
本文實例講述了Python實現通過繼承覆蓋方法。分享給大家供大家參考,具體如下:
Python真是太動態了,所有的方法默認都是虛的。子類定義父類同名函數之后,父類函數被覆蓋。
class P(object):
def foo(self):
print "I am a P-foo()"
class C(P):
def foo(self):
print "I am a C-foo()"
>>>p=P()
>>>c=C()
>>>p.foo()
I am a P-foo()
>>>c.foo()
I am a C-foo()
這就引出了一個問題:重寫__init__不會自動調用基類的__init__。在C++中如果使用了派生類默認構造函數的話,是會自動調用基類的默認默認構造函數的。C++中調用非默認構造函數是顯示調用基類構造函數來初始化基類部分的。
class P(object):
def __init__(self):
print "P's constructor"
class C(P):
def __init__(self):
print "C's constructor"
>>>c=C()
C's constructor
如果需要調用基類構造函數時,可將C類定義改為
class C(P):
def __init__(self):
P.__init__(self)
print "C's constructor"
或者
class C(P):
def __init__(self):
super(C,self).__init__()
print "C's constructor"
使用super(className,self).functionName(沒有self!!)的重點是不需要提供父類,這意味著如果改變了類繼承關系,只需要改變一行代碼(class C(P)),此時尋找基類的事由super函數完成。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
本文標題: Python實現通過繼承覆蓋方法示例
本文地址: http://www.cppcns.com/jiaoben/python/231678.html
總結
以上是生活随笔為你收集整理的python继承编程教程_Python实现通过继承覆盖方法示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的主要应用领域及常用的函数模
- 下一篇: 删除 jar 的 asset_【unit