我有以下代码,我使用类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