python 中继承list类举例

本例来源为 HeadFirst Python,稍作改动。不愧为深入浅出,很棒的例子。

毕竟经过了一点改动,我就厚颜无耻地把标题定为原创了。。。


定义一个类,继承list的属性和方法。

假设田径队100米训练后,我们需要存储一组数据来记录各个运动员的成绩,分别要储存运动员的
姓名,出生日期和每次100米的成绩。可以有多种方式储存,直接存在list或dictionary里都行。这里我
们使用自己定义的存储方式AthleteList方式储存。用字符串储存运动员的姓名和出生日期,用list来储


存各次100米成绩。
class AthleteList(list):
    def __init__(self, a_name, a_dob=None, a_time=[]):
        list.__init__([])
        self.name=a_name
        self.dob=a_dob
        self.extend(a_time)




在自己的类名后加入(list)以表示继承list类。__init__函数中,第一个参数永远是self。接下来,调用lis
的构造函数,list.__init__([]), 注意此时参数填入[]。剩下就是给类的成员赋值了。本类的对象本身就
是list,直接储存了百米成绩,所以查看成绩是可直接调用类名。
在shell中演示如何使用这个类。


>>> a=AthleteList('James', '1992', ["14'2''","13'33''"])
此语句执行时,实际执行的是
a=AthleteList.__init__(a, 'James', '1992', ["14'2''","13'33''"])
>>> a
["14'2''", "13'33''"]
>>> print(a)
["14'2''", "13'33''"]
>>> for each in a:
print(each)


14'2''
13'33''


由于继承了list,类AthleteList兼有了list的属性,调用方法时可当做list对象调用,所以调用a和调用


a.time 都能得到记录时间的列表。
>>> a.name
'James'
>>> a.dob
'1992'
调用成员得到姓名和出生年月的信息。
接下来试试list中原有的方法调用。
>>> a.append('99')
>>> a
["14'2''", "13'33''", '99']
>>> a.insert(1,'5553')
>>> a
["14'2''", '5553', "13'33''", '99']
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值