Python3 類的繼承

2021-08-15 08:09:22 字數 2343 閱讀 5510

# -*- coding:utf-8 -*-

# 物件導向程式設計的三個特點:封裝、繼承、多型

# 函式是封裝**的基本單位,類和物件的封裝是屬於更高階的封裝方式 ,在類中經常會宣告一些物件屬性,用來儲存資料的,在類中宣告的函式,是用來運算元據的,不同的功能可以封裝成不同的函式

# 繼承 特點:

# 1.子類繼承父類,子類擁有父類的所有屬性和函式,但是父類不可以使用子類獨有的屬性函式

# 2.子類繼承父類,子類可以使用自己獨有的函式

# 3.子類繼承父類,子類可以重寫父類的函式

# 為什麼要重寫父類函式? 一般都是因為父類中的函式滿足不了子類功能需求,才會去重寫父類函式

# 3.1 完全重寫 在子類中,重新定義乙個和父類函式名稱一樣的函式,並且在該函式中執行的功能和父類完全不同

# 3.2 部分重寫 在子類中,重新定義乙個和父類函式名稱一樣的函式,在重寫的函式中呼叫了父類中的函式,先執行了父類中原有的功能,然後在該函式中新增額外功能的**,這樣的話,既保留了父類原有功能,又擴充套件了這個函式新的功能

# object 頂級父類 python中所有的類都是直接或者間接繼承自object

class people(object):

# 初始化函式

def __init__(self,name,age,weight):

self.name = name

self.age = age

self.weight = weight

# 物件函式

def sleep(self):

print ('這是people類中的sleep函式')

# 根據工作時間,計算體重是否減少的功能函式

def work_time(self,time):

# 如果工作時間在8小時到12小時範圍,體重-2斤

# 如果工作時間超過12小時範圍,體重-5斤

if 812:

self.weight -=5

# 建立people物件p1

p1 = people('張三',22,180)

p1.sleep()

# 執行功能函式

p1.work_time(13)

print ('p1工作之後的體重:%s'%p1.weight)

# 宣告man類,繼承自people

class man(people):

# 初始化

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

# 呼叫父類的初始化,將父類中的屬性進行初始化,並且將self物件作為引數傳遞到父類的初始化函式中

super(man, self).__init__(name,age,weight)

# 初始化當前類擁有的屬性

self.*** = ***

self.height = height

def somking(self):

print ('這是man中的smoking函式')

# 1.完全重寫乙個sleep函式

def sleep(self):

# 在這個sleep函式中,可以執行和父類完全不同的功能

print ('這是man類中的sleep函式')

# 2.重寫work_time函式

def work_time(self,time):

# 2.1根據時間計算體重

# 先去執行父類中work_time()函式,計算體重

super(man, self).work_time(time)

# 2.2根據體重判斷身材是否標準

# 再去新增額外的功能**

# 身高-105 = 體重 身材標準

# 身高-105 > 體重 身材偏瘦

# 身高-105 < 體重 身材偏胖

result = self.height -105

if result > self.height:

print ('身材偏瘦')

elif result < self.height:

print ('身材偏胖')

else:

print ('身材標準')

# 建立man類的物件

m = man('李四',23,'男',70,180)

m.sleep()

# m在執行work_time函式時,除了要計算體重之外,還要判斷身材是否標準

m.work_time(12)

print ('m工作之後的體重:%s'%m.weight)

print(m.name)

print (m.age)

print(m.***)

python3 類的繼承

基本語法 class derivedclassname baseclassname1 1 需要注意圓括號中父級類的順序,若是父級類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父級類中是否包含方法。示例 class a object pass ...

Python3 類的繼承

目錄初識繼承 尋找繼承關係 繼承背景下的物件屬性查詢順序 派生新式類和經典類 鑽石繼承 通過繼承實現修改json模組資料型別 繼承指的是一種新建類的方法,新建的類稱之為子類或者派生類 子類繼承的類叫做父類,也稱之為基類或者超類 繼承的目的是減少 的冗餘 減少重複 在定義類時候,通過class 子類 ...

Python3 類和物件 繼承

class derivedclassname baseclassname 子類 父類 如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性,父類中的方法不受影響 1 呼叫未繫結的父類方法 class a def init self print 進入a print 離開a class...