zoukankan      html  css  js  c++  java
  • 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())
  • 相关阅读:
    BZOJ1087=Codevs2451=洛谷P1896&P2326互不侵犯
    poj1286
    P1066 2^k进制数
    开车旅行
    洛谷P1396 营救
    poj1840
    poj3693
    poj1195
    3955 最长严格上升子序列(加强版)
    1021 玛丽卡
  • 原文地址:https://www.cnblogs.com/I-Tegulia/p/4191862.html
Copyright © 2011-2022 走看看