zoukankan      html  css  js  c++  java
  • 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:UsersericDocumentsPythonkellykelly3.py ==========
    Object name is: VeraName
    VeraName's top3 is: ['1.31']
    VeraName's top3 is: ['1.31', '2.12', '3.33']
    
  • 相关阅读:
    mq/mysql/redis/nginx常见服务&工具安装
    中断——中断描述符表的定义和初始化(二) (基于3.16-rc4)
    中断——中断描述符表的定义和初始化(一) (基于3.16-rc4)
    linux内核中与进程相关的数据结构(基于linux3.16-rc4)
    内核链表的应用
    ubuntu下做柯老师lab19-lab20实验问题总结
    在ns2.35中添加myevalvid框架
    在ns2.35下完成柯老师lab18实验
    windows编程socket问题
    如何高效利用GitHub
  • 原文地址:https://www.cnblogs.com/oskb/p/4849515.html
Copyright © 2011-2022 走看看