Python 派生类子类继承类

1.创建list类的子类Namedlist,初始化新类,创建新对象实例johnny,检查对象类型,并使用list的一些功能来存储数据

>>> class Namedlist(list):
	def __init__(self,a_name):
		list.__init__([])
		self.name=a_name

>>> johnny=Namedlist("John Paul Jones")
>>> type(johnny)
<class '__main__.Namedlist'>
>>> dir(johnny)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'name', 'pop', 'remove', 'reverse', 'sort']
>>> johnny.append("Bass Palyer")
>>> johnny.extend(['Composer','Arrager','Mussical'])
>>> johnny
['Bass Palyer', 'Composer', 'Arrager', 'Mussical']
>>> johnny.name
'John Paul Jones'
>>> for attr in johnny:
	print(johnny.name + "is a" + attr +".")

John Paul Jonesis aBass Palyer.
John Paul Jonesis aComposer.
John Paul Jonesis aArrager.
John Paul Jonesis aMussical.

2. 创建Athletelist继承list类来实现vera列表的扩展

def senitize(time_string):
    if '-' in time_string:
        splitter='-'
    elif ':' in time_string:
        splitter=':'
    else:
        return(time_string)
    (mins,secs)=time_string.split(splitter)
    return(mins+'.'+secs)

class Athletelist(list):
    def __init__(self,a_name,a_dob=None,a_times=[]):
        list.__init__([])
        self.name=a_name
        self.dob=a_dob
        self.extend(a_times)
    def top3(self):
        return(sorted(set([senitize(t) for t in self]))[0:3])

vera=Athletelist('VeraName')
vera.append('1.31')
print('Object name is:', vera.name)
print(vera.name+"'s top3 is: " + str(vera.top3()))
vera.extend(['2.12','3.44','3.33'])
print(vera.name+"'s top3 is: " + str(vera.top3()))

========== RESTART: C:\Users\eric\Documents\Python\kelly\kelly3.py ==========
Object name is: VeraName
VeraName's top3 is: ['1.31']
VeraName's top3 is: ['1.31', '2.12', '3.33']

 

转载于:https://www.cnblogs.com/oskb/p/4849515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值