今天寫了一個(gè)簡(jiǎn)單的代碼,但是問題不斷,斷斷續(xù)續(xù)一天才完成,寫這篇博客好好分析以下:
問題就是建立個(gè)student對(duì)象里面有name和count,記載某人的投票數(shù).原始數(shù)據(jù)已給出.
示例代碼如下:
A=['tom','adel','alex']
B=[4,3,2]
class Student:
def setName(self,name):
self.name=name
def setCount(self,count):
self.count=count
def getName(self):
return self.name
def getCount(self):
return self.count
def _str_(self):
return "%s:%s"%(self.name,self.count)
C=zip(A,B)
Stu_list=[]
for i in range(len(C)):
Stu=Student()
Stu.setName(C[i][0])
Stu.setCount(C[i][1])
Stu_list.append(Stu)
for i in range(len(C)):
print Stu_list[i]._str_()
現(xiàn)在我仔細(xì)梳理一下我遇到的各種問題:
1: ? ? for i in range(len(C)):
在這一句中我想得出C列表的長(zhǎng)度,并進(jìn)行循環(huán)操作,這時(shí)必須要用range函數(shù)才可以不然會(huì)得到錯(cuò)誤如下:
TypeError: 'int' object is not iterable
2: ? ? ? Stu=Student()
在沒有建立實(shí)例的情況下直接使用Student對(duì)象.謹(jǐn)記謹(jǐn)記!
3:? ? ? ? Stu_list.append(Stu)
之前一直寫Stu[i]一直出錯(cuò).后來知道只有建立列表才能這樣使用,和C語言的結(jié)構(gòu)體數(shù)組混淆了.
隨后建立了Stu_list數(shù)組利用append函數(shù)加入對(duì)象.
4:? ? ? print Stu_list[i]._str_()
在輸出時(shí)一開始直接使用 print Student 結(jié)果出來的是:
[<__main__.Student instance at 0x7f6fbbbdcbd8>,
類似于存儲(chǔ)地址?
輸出地址中內(nèi)容要么使用 Stu_list.getName 要么加入_str_函數(shù)然后用
print Stu_list._str_() 就可以了.
總結(jié)起來感覺沒有什么好說的,當(dāng)時(shí)寫的時(shí)候真的是麻煩不斷阿!!!!