python 中繼承list類舉例

2021-06-19 00:12:14 字數 1370 閱讀 3695

本例**為 headfirst python,稍作改動。不愧為深入淺出,很棒的例子。

畢竟經過了一點改動,我就厚顏無恥地把標題定為原創了。。。

定義乙個類,繼承list的屬性和方法。

假設田徑隊100公尺訓練後,我們需要儲存一組資料來記錄各個運動員的成績,分別要儲存運動員的

姓名,出生日期和每次100公尺的成績。可以有多種方式儲存,直接存在list或dictionary裡都行。這裡我

們使用自己定義的儲存方式athletelist方式儲存。用字串儲存運動員的姓名和出生日期,用list來儲

存各次100公尺成績。

class athletelist(list):

def __init__(self, a_name, a_dob=none, a_time=):

list.__init__()

self.name=a_name

self.dob=a_dob

self.extend(a_time)

在自己的類名後加入(list)以表示繼承list類。__init__函式中,第乙個引數永遠是self。接下來,呼叫lis

的建構函式,list.__init__(), 注意此時引數填入。剩下就是給類的成員賦值了。本類的物件本身就

是list,直接儲存了百公尺成績,所以檢視成績是可直接呼叫類名。

在shell中演示如何使用這個類。

>>> a=athletelist('james', '1992', ["14'2''","13'33''"])

此語句執行時,實際執行的是

a=athletelist.__init__(a, 'james', '1992', ["14'2''","13'33''"])

>>> a

["14'2''", "13'33''"]

>>> print(a)

["14'2''", "13'33''"]

>>> for each in a:

print(each)

14'2''

13'33''

由於繼承了list,類athletelist兼有了list的屬性,呼叫方法時可當做list物件呼叫,所以呼叫a和呼叫

a.time 都能得到記錄時間的列表。

>>> a.name

'james'

>>> a.dob

'1992'

呼叫成員得到姓名和出生年月的資訊。

接下來試試list中原有的方法呼叫。

>>> a

["14'2''", "13'33''", '99']

>>> a.insert(1,'5553')

>>> a

["14'2''", '5553', "13'33''", '99']

python繼承定義 python中繼承如何定義

python中繼承如何定義 閱讀 66 物件導向程式設計 oop 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。通過繼承建立的新類稱為 子類 或 派生類 被繼承的類稱為 基類 父類 或 超類 繼承的過程,就是從...

Python 中 類當中繼承多型的案例

多型 統一呼叫每乙個類當中相同的方法,讓每乙個物件具備相同的介面 class schoolperson 學校有哪些人 def init self,name,age 建立例項方法 self.name,self.age name,age print f 例項化學校成員 defsay self print...

Python中繼承的優缺點

1 不要試圖在內建型別的子類中重寫方法,可以繼承collections的可拓展類尋求變通 2 掌握多重繼承中的mro和super 3 了解處理多重繼承的一些建議。1 內建型別的方法不會呼叫子類覆蓋的方法 內建類可以子類化,但是內建型別的方法不會呼叫子類覆蓋的方法。下面以繼承dict的自定義子類重寫 ...