三.类的继承
Python 的class可以允许从零开始创建一个定制类,就像文章(二)创建Athlete类一样,也可以通过继承现有的其他类类创建一个类,这也包括用List、set和dict提供的python内置结构类,通过继承创建的这些类称为子类。
(1) 原有的类
class Athlete:
def __init__(self,a_name,a_dob,a_times=[]):
self.name = a_name
self.dob=a_dob
self.times=a_times
def top3(self):
return(
sorted(set([sanitize(t) for t in self.times]))[0:3])
向类增加两个方法:add_times(),可以将额外的计时值追加到选手的计时数据,add_times()会用一个或多个计时值(列表)来扩展一个选手的计时数据
def add_times(self,time_value):
self.times.append(time_value)
def add_times(self,list_of_times):
self.times.extend(list_of_times)
(2) 继承内置类list的类
class AthleteList(list):
#提供被派生的类
def __init__(self,a_name,a_dob,a_times=[]):
list.__init__([])
#初始化所派生的类
self.name = a_name
#将参数赋予属性
self.dob=a_dob
self.extend(a_times) #数据本身就是计时数据,所以不再需要"times"属性
def top3(self):
return(
sorted(set([sanitize(t) for t in self]))[0:3])
(3) 调用类
Vera = AthleteList('Vera Vi')
Vera.append('1.31')
Vera.extend(['2.22','1-21','2;22'])
print(Vera.top3())
转载于:https://www.cnblogs.com/I-Tegulia/p/4191862.html