Python基本語法 物件過載 重寫 拾遺

2021-08-25 08:25:41 字數 1626 閱讀 4085

前言:

python有過載?不是只有重寫?經過一番搜尋 基本概念是

方法重寫(overriding):

1、也叫子類的方法覆蓋父類的方法,要求返回值、方法名和引數都相同。

2、子類丟擲的異常不能超過父類相應方法丟擲的異常。(子類異常不能超出父類異常)

3、子類方法的的訪問級別不能低於父類相應方法的訪問級別(子類訪問級別不能低於父類訪問級別)

方法過載(overloading):

過載是在同乙個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相同,方法體也不相同,最常見的過載的例子就是類的建構函式,  感覺python就這個時候可以稱得上過載

class human:

__age=0

__***=''

__height=0

__weight=0

name=''

def __init__(self,age,***,height,weight):

self.__age=age

self.__***=***

self.__height=height

self.__weight=weight

def setname(self,name):

self.name=name

def show(self):

print(self.name)

print(self.__age)

print(self.__***)

print(self.__height)

print(self.__weight)

class student(human):#通過繼承human類生成student類

__classes=0

__grade=0

__num=0

def __init__(self,classes,grade,num,age,***,height,weight):#過載

self.__classes=classes

self.__grade=grade

self.__num=num

human.__init__(self,age,***,height,weight)#呼叫human類的__init__方法,初始化huamn類的屬性,過載huamn類後又使用類的該方法,則用「父類.方法名」的方式呼叫

def show(self):#重寫show()方法

human.show(self)#呼叫huamnn類的show方法

#super(student,self).show()

print(self.__classes)

print(self.__grade)

print(self.__num)

if __name__=='__main__':

a= student(12,3,20070305,19,'male',175,65)#例項化生成a物件

a.setname('tom')#呼叫setname方法

a.show()#呼叫show方法,即用重寫後的show方法輸出屬性

python類與物件基本語法

物件導向程式設計的2個非常重要的概念 類和物件。物件是物件導向程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組物件抽象定義,提出了另外乙個新的概念 類。本人學習筆記基於python2的版本進行測試。定義乙個類 class person age 10 下面 沒有進行初始化是會報錯的 ...

python語法例項 python基本語法練習例項

1 列印九九乘法表 只列印結果 for i in range 1,10 for j in range 1,i 1 print i j,end print 列印算數表示式 for i in range 1,10 for j in range 1,i 1 print format j,i,i j end...

python語法練習 python基本語法練習

1 列印九九乘法表 只列印結果 for i in range 1,10 for j in range 1,i 1 print i j,end print 列印算數表示式 for i in range 1,10 for j in range 1,i 1 print format j,i,i j end...