概述
一、实用字典关联数据
二、定义一个类
每个类都有一个__init__()方法来控制初始化对象,除了__init__(),每个方法第一个参数都是self
>> class Athelete:
def __init__(self):
self.thing = value
def how_big(self):
return(len(self.thing))
>> 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']
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']
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 = 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 = 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.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.
john name is a player.
john name is a student.
john name is a boy.
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
总结
以上是编程之家为你收集整理的《head first python》——定制数据对象全部内容,希望文章能够帮你解决《head first python》——定制数据对象所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧