程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Children learn Python (21): inheritance

編輯:Python


面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制.繼承完全可以理解成類之間的類型和子類型關系.

需要注意的地方:繼承語法 class 派生類名(基類名)://… 基類名寫在括號裡,基本類是在類定義的時候,在元組之中指明的.
在python中繼承中的一些特點:

1:在繼承中基類的構造(init()方法)不會被自動調用,它需要在其派生類的構造中親自專門調用.
2:在調用基類的方法時,需要加上基類的類名前綴,且需要帶上self參數變量.區別在於類中調用普通函數時並不需要帶上self參數
3:Python總是首先查找對應類型的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查找.(先在本類中查找調用的方法,找不到才去基類中找).
如果在繼承元組中列了一個以上的類,那麼它就被稱作”多重繼承” .

語法:

派生類的聲明,與他們的父類類似,繼承的基類列表跟在類名之後,如下所示:

class SubClassName (ParentClass1[, ParentClass2, ...]):

  • 1.

例1

class Parent:

number = 100
def __init__(self):
print "Invoke parent constructor method"

def parentMethod(self):
print 'Invoke parent method'

def setNumber(self, num):
self.number = num

def getNumber(self):
print "Parent's number :", self.number

class Child(Parent):
def __init__(self):
print "Invoke child constructor method"

def childMethod(self):
print 'Invoke child method'

c = Child()
c.childMethod()
c.parentMethod()
c.setNumber(200)
c.getNumber()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.

運行結果:

Invoke child constructor method

Invoke child method
Invoke parent method
Parent’s number 200
  • 1.
  • 2.
  • 3.
  • 4.

python支持多繼承:

class A: # 定義類 A

.....

class B: # 定義類 B
.....

class C(A, B): # 繼承類 A 和 B
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

Two methods related to the class:
issubclass() -Determines whether a class is a subclass or descendant of another class,語法:issubclass(sub,sup)
isinstance(obj, Class) 如果obj是Class類的實例對象或者是一個Class子類的實例對象則返回true,否則返回false.


更多內容請關注微信公眾號



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved