加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

《head first python》——定制数据对象

发布时间:2020-12-17 01:24:56 所属栏目:Python 来源:网络整理
导读:一、实用字典关联数据 二、定义一个类 每个类都有一个__init__()方法来控制初始化对象,除了 >> class Athelete: def __init__(self): self.thing = value def how_big(self): return(len(self.thing)) 需要注意:self是默认的,类的属性可以在类的参数里定

一、实用字典关联数据

二、定义一个类

每个类都有一个__init__()方法来控制初始化对象,除了

>> class Athelete:
    def __init__(self):
        self.thing = value
    def how_big(self):
        return(len(self.thing))
需要注意:self是默认的,类的属性可以在类的参数里定义好
>> class Athelete:
    def __init__(self,a_name,a_dob=None,a_times=[]):
        self.name = a_name
        self.dob = a_dob
        self.times = a_times
    def add_time(self,time_value):
        self.times.append(time_value)
    def add_times(self,list_of_times):
        self.times.extend(list_of_times)

sarah=Athelete("sarah",'2002-06-07',['a:58','1.56'])
sarah.add_time('3.25')
sarah
<main.Athelete object at 0x000000000553D6A0>
sarah.times
['a:58','1.56','3.25']

与列表区别:Athelete很像列表,区别只是Athelete类包含name和dob对象。

虽然python支持从零建立一个定制类,但也可以继承一个已有类,包括:list、set,并使用他们内置的数据结构

>> class NameList(list):
    def __init__(self,a_name):
        self.name = a_name

john = NameList("john name")
type(john)
<class 'main.NameList'>
dir(john)
['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']

john能做列表能做的所有事,并且可添加属性:

>> john.append("player")
>>> john.extend(["student","boy"])
>>> for attr in john:
    print(john.name+" is a "+ attr + ".")

john name is a player.
john name is a student.
john name is a boy.

实战:

>> testlist = [['1','2009-03-02',3.762146,-8],['1','2009-03-01',3.758066,'2009-01-03',3.76085332653061,['0','2009-12-28',39.759765375,-104.984303125],'2009-12-27',39.70999875,-104.95675168749999],'2009-12-24',39.72202824,-104.96074968],'2009-12-23',39.77230825,-105.0435074375],'2009-12-21',39.77455175,-105.01426466666665],'2009-12-20',39.76241472,-104.90343176000002],['299','2009-08-14',29.894691,-81.314517],'2009-08-13',29.894691000000005,]
>>> class nodeList(list):
    def __init__(self,m_1=0,m_2=0,probability=1):
        list.__init__([])
        self.m_1 = m_1
        self.m_2 = m_2
        self.probability = probability
    def probability(m_1,m_2):
        info = a*sum([1/2**i for i in range(m_1)]) + 
                b*sum([1/2**i for i in range(m_2)])
        probability = 1 - info
        self.probability = probability
>>> type(testlist[0])

>>> temp = nodeList()
>>> temp.extend(testlist[0])
>>> type(temp)

>>> testlist[0]=temp
>>> type(testlist[0])

>>> testlist[0].m_1
0
>> for item in testlist:
    temp = nodeList()
    temp.extend(item)
    item = temp
                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读