欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 自定义类继承list类

程序员文章站 2024-03-20 18:50:40
...
#! 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中的继承

转载于:https://www.jianshu.com/p/363ed3f68598