Python入門課程2 2 類的繼承

2021-09-12 10:41:49 字數 2199 閱讀 4263

1、繼承

即允許基於乙個現有的類作為起點定義新的類的一種技術

2、父類與子類

在物件導向的術語中,通常描述現有的類為基類(bass class)、父類(parent class)、或者超類(superclass)

基於現有類新定義的類為子類(subclass或childclass)

下面以課程2.1中creditcard類為父類,實現乙個可以評估利息和費用的predatorycreditcard子類為例,說明重寫和擴充套件的舉例實現。

creditcrad父類

class creditcard:

def __init__(self,customer,bank,acnt,limit):

self._customer = customer #使用者名稱,例如:'zhang san'

self._bank = bank #所屬銀行,例如:'招商銀行』'

self._account = acnt #卡賬號,例如:6222023200003451627

self._limit = limit #卡額度,例如:18000

self._balance = 0 #已用額度,例如:8500

def get_customer(self):

return self._customer

def get_bank(self):

return self._bank

def get_account(self):

return self._account

def get_limit(self):

return self._limit

def get_balance(self):

return self._balance

def charge(self,price):

if price + self._balance > self._limit:

return false

else:

sele._balance += price

return true

def make_payment(self,amount):

self._balance -= amount

predatorycreditcrad子類

class predatorycreditcrad(creditcard):

'''由creditcard類擴充套件的新類,提供了三個成員函式:__init__、charge和process_month

這些函式的主體,都依賴呼叫繼承的建構函式來執行大部分初始化處理'''

def __init__(self,customer,bank,acnt,limit,apr):

'''呼叫繼承建構函式的機制依賴於super()語法,呼叫父類中相對應的方法'''

super().__init__(customer,bank,acnt,limit) #呼叫從creditcard父類繼承的__init__方法

self._apr = apr #年利息

def charge(self,price):

'''重寫了繼承的charge方法:

當嘗試收費,但由於信用卡額度不足而被拒絕時,收取5美元的費用'''

success = super().charge(price) #呼叫從creditcard父類繼承的charge方法

if not success:

self._balance += 5

return success #返回繼承的charge方法的值給呼叫者,這樣可使新的收費方法與原來的有類似的外部介面

def process_month(self):

'''拓展了乙個新的process_month方法:

當有乙個未清餘額時,按月收取利息'''

if self._balance > 0:

monthly_factor = pow(1 + self._apr,1/12)

self._balance *= monthly_factor

1、保護成員

一些物件導向的語言,允許宣告的受保護私有的訪問模式

在python中不支援正式的訪問控制,但通過名字格式可以區別

python怎麼繼承類 python類的繼承

一 概述 二 類的繼承 2.1 繼承的定義 2.2 建構函式的繼承 2.3 子類對父類方法的重寫 三 類繼承的事例 一 概述 物件導向程式設計 oop 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。通過繼承建立...

python類的繼承重構 python類繼承與重構

python類繼承與重構 0 物件 通過類定義的資料結構例項。物件包括兩個資料成員 類變數和例項變數 和方法。usr bin python coding utf 8 class employee 所有員工的基類 empcount 0 def init self,name,salary self.na...

Python基礎 22新式類

1 工廠函式 由於型別和類的統一,因而可以子類化python資料型別。但是所有的python 內建的轉換函式現在都是工廠函式。當這些函式被呼叫時,你實際上是對相應的型別進行例項化。比如下面的函式都已經成為工廠函式 int long float complex str unicode list tup...