python DAY 7 2 物件導向程式設計例項

2021-10-02 02:43:56 字數 3454 閱讀 4204

學習內容:

物件導向程式設計,繼承與多型

tips:多型的核心思想是同一型別的不同例項,同一訊息的不同響應

重點:1.子類繼承父類

我們在定義完父類之後,在建立子類時可以直接引用父類

定義及引用格式如下:

class 子類名(父類名):

def ——init———(self,父類關鍵字(多個),子類關鍵字(多個)):

#這個時候宣告變數的時候無需在乙個乙個定義,呼叫父類即可

父類名.init(self,父類關鍵字(多個))

或者(super().init(父類關鍵字(多個)))

#以上兩種定義都可以實現繼承

self.子類關鍵字(多個)=子類關鍵字

defrepr(self):#防止列印訊息無內容,或者顯示無用內同

return 「*{}」.format(self.子類關鍵字)#僅提供一種形式,具體內容自己設定。

在上述定義好之後我們便可以進行對子類的操作,包括定義函式,引用等等。

以下我將直接進入**段,回顧一下學習內容。

(還是以之前健身為例子)

1.首先我們建立父類名為fitness。

具體**如下:

class fitness: # 建立了健身這個類

def __init__(self,

name=" ",

***=" ",

birthday=" ",

aim="減脂",

weight=" ",

heart_rate=" ",

blood_pressure=" ",

recommend_sport=none):

# 初始化,我們需要將基本訊息和條件寫入,即使沒有測得數字,我們可是預設附上內容,在後續我們錄入數值時,可以自動替換掉

self.name = name

self.*** = ***

self.birthday = birthday

self.aim = aim

self.weight = weight

self.heart_rate = heart_rate

self.blood_pressure = blood_pressure

self.recommend_sport = recommend_sport

fitness.count += 1

def __repr__(self):

return "姓名:{}".format(self.name)

#開始

@property

def age(self):

return datetime.date.today().year - self.birthday.year

@age.setter  # 無需冒號

def age(self, value): # age為屬性,可以隨時呼叫了

raise attributeerror("禁止更改年齡")

@age.deleter

def age(self):

raise attributeerror("禁止刪除年齡")

上述父類因為引用了年齡,年齡是可變的所以在操作時要匯入datetime包

import datetime

2.父類建立好之後,我們便可以宣告了

man1 = fitness(「zzh」, 「man」, datetime.date(1998, 1, 10), 「增肌」, 「55」, 「85」, 「120-70」)

man2 = fitness(「wxj」, 「man」, datetime.date(1997, 1, 10), 「增肌」, 「55」, 「85」, 「120-70」)

man3 = fitness(「lonely」, 「man」, datetime.date(1996, 1, 10), 「增肌」, 「55」, 「85」, 「120-70」)

man1.print_out()

上述在建立好之後實現父類裡面的函式呼叫,即print_out()的呼叫

3.子類的建立,定義宣告

因為涉及到繼承,是本次的重點

****建立子類,**如下

**class coach(fitness):

definit(self, name, ***, birthday, aim, weight, heart_rate, blood_pressure, recommend_sport, speciality,

salary):

fitness.init(self, name, ***, birthday, aim, weight, heart_rate, blood_pressure, recommend_sport)

#還可以使用如下:

#super().init(name,***,birthday,aim,weight,heart_rate,blood_pressure,

recommend_sport)一樣可以使用

self.speciality = speciality

self.salary = salary

defrepr(self):

return 「此教練擅長:{}\n所帶會員名字:{}」.format(self.speciality, self.name)

def addsalary(self, bounspercentage, addpercentage):

return self.salary * (1 + bounspercentage + addpercentage)

@property

def age(self):

return datetime.date.today().year - self.birthday.year

我們在建立好子類之後,便可以對子類進行建立內容和使用了

coach1 = coach(「zzh」, 「man」, datetime.date(1998, 1, 10),「增肌」, 「55」, 「85」, 「120-70」, 「squat」, 「抗阻力訓練」, 8000)

建立之後,我們可以列印coach1

print(coach1)

#此時會呼叫到repr函式(位於子類中,列印repr的內容)

print(「此教練工資:{}」.format(coach1.addsalary(0.1, 0.2)))#呼叫addsalary函式

print(「會員的生日:{}」.format(coach1.age))#age使用到裝飾器,age成為乙個單獨的屬性,便可以呼叫

print(coach1.birthday)#列印生日資訊,具體格式參見********

python day6 物件導向

物件和類 什麼是物件,什麼是類 python中一切皆為物件,且python3統一了類與型別的概念,型別就是類,所以,不管你信不信,你已經使用了很長時間的類了 class lei print 666 例項化 duixiang lei 物件指向這一類的 記憶體位址 類是由屬性 變數 和技能 函式 的組合...

Python Day 2 物件導向程式設計

property裝飾器 將乙個函式變成屬性呼叫 在繫結屬性的時候,如果把屬性資料暴露出去,雖寫起來簡單但無法檢查引數,導致資料可以隨意更改。所以需要乙個set和乙個get,通過set來檢查設定引數。訪問器 getter 把乙個訪問器變為屬性只需要加上 property 只定義getter方法不定義s...

python day8 9 物件導向程式設計

物件是具體的,類是抽象的。物件都有屬性和行為,把一堆有共同特徵的物件的靜態特徵 屬性 和動態特徵 動作 抽取出來後就可以構造出類。可見性問題 通過類建立出物件後,物件的引數是有可見性問題的。一般引數都是由私有 受保護 公開三個狀態。python裡只有私有和公開狀態。但是大家都是成年人的,要對自己的行...