Python的数据处理学习(三)

三.类的继承
 
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())
上一篇:在iframe下的页面锚点失效问题,用jquery进行修复


下一篇:SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序