python 自定义类继承list类

#! usr/bin/env python
# -*- coding:utf-8 -*-
import os
os.chdir('C:\\Python34\\headfirst\\demo')

class AtheletList(list):
    def __init__(self,name = None, dob = None, times = []):
        list.__init__([])
        self.name = name
        self.dob = dob
        self.extend(times)
    def top3(self):
        return str(sorted(set([sanitize(i) for i in self]))[0:3])

class Athelet:
    def __init__(self,name = None, dob = None, times = []):
        self.name = name
        self.dob = dob
        self.times = times
    def top3(self):
        return str(sorted(set(self.times))[0:3])
    def add_time(self,time_str):
        self.times.append(sanitize(time_str))
    def add_times(self,times):
        self.times.extend([sanitize(i) for i in times])

def sanitize(time_str):
    if ':' in time_str:
        splitter = ':'
    elif '-' in time_str:
        splitter = '-'
    else:
        return time_str
    (min,sec) = time_str.split(splitter)
    return (min + '.' + sec)

def get_data(filename):
    try:
        with open(filename) as f:
            data = f.readline()
            temp = data.strip().split(',')
            name = temp.pop(0)
            dob = temp.pop(0)
            times = [sanitize(i) for i in temp]
            a = Athelet(name,dob,times)
    except FileNotFoundError as error:
        print('File Error:' + error)
        return None
    return a

james = get_data('james2.txt')
print(james.name + "'s best times are:" + james.top3())
print('*'*64)
print(james.name + "'s date of birth is:" + james.dob)
print('*'*64)
print(james.name + "'s time list is:" + str(james.times))
print('*'*64)
print("Add a data to james's time list: '2-15'")
james.add_time('2-15')
print('*'*64)
print(james.name + "'s time list now is:" + str(james.times))
print('*'*64)
print("Add some datas to james's time list: '2:24','2:39','2-17'")
james.add_times(['1-59','2:24','1-48','2-17'])
print('*'*64)
print(james.name + "'s time list now is:" + str(james.times))
print('*'*64)
b = AtheletList('Dean','1992-09-24',['dawdw','daddfrg','grdgrd'])
print(b.name)

详细内容参见:
python中的继承

你可能感兴趣的:(python 自定义类继承list类)