我有以下代碼,我使用類stat
來保存我的數據。將stat
類型的對象插入到列表中。但是,當我嘗試調用方法printStats
時,出現錯誤AttributeError: stat instance has no attribute 'printStats'
。其次,我想知道如何排序包含stat
的對象的列表。我的排序應該基於blocks
字段stat
。對包含python類中的對象的列表排序
fi = open('txt/stats.txt', 'r')
fo = open('compile/stats.txt', 'w')
list = []
class stat():
def __init__(self, fname, blocks, backEdges):
self.fname = fname
self.blocks = blocks
self.backEdges = backEdges
def printStats(self):
print self.fname + str(self.blocks) + str(self.backEdges)
while True:
line_str = fi.readline()
if line_str == '':
break
str = line_str.split()
list.append(stat(str[0], int(str[1]), int(str[2])))
for item in list:
item.printStats() # <-- problem calling this
不要使用'list'作爲名字。 – 2012-08-15 12:39:05
從'object'繼承也是一個好習慣。例如'class stat(object):' – mgilson 2012-08-15 12:43:46
另外,由於文件對象支持迭代,所以你可以不用'while true'循環,而只需要'for line_str in fi:'。 – mgilson 2012-08-15 12:45:03