Python类索引器
我写这门课是为了把两行织在一起Python类索引器,python,class,Python,Class,我写这门课是为了把两行织在一起 class CoordinatRow(object): def __init__(self): self.coordinaterow = [] def add_coordinaterow(self, coordinate): self.coordinaterow.append(coordinate) def weave(self,other): lijst = [] for i in range(len(self.c
class CoordinatRow(object):
def __init__(self):
self.coordinaterow = []
def add_coordinaterow(self, coordinate):
self.coordinaterow.append(coordinate)
def weave(self,other):
lijst = []
for i in range(len(self.coordinaterow)):
lijst.append(self.coordinaterow[i])
lijst.append(other.coordinaterow[i])
self.coordinaterow = lijst
return self.coordinaterow
我向对象添加坐标,如下所示:
def process_row(line):
temp_coordinate_row = CoordinatRow()
rij = line.split()
for coordinate in rij:
coor = process_coordinate(coordinate)
temp_coordinate_row.add_coordinaterow(coor)
return temp_coordinate_row
当我想通过这样做将两行添加到一起时:
def split_and_add(invoer):
rij = invoer.split('=')
rows = []
for line in rij:
rows.append(process_row(line))
return rows
bestand = file_input()
rows = split_and_add(bestand)
for row in range(0,len(rows)-1):
rows[row].weave(rows[row+1])
但是,我得到以下错误:
rows[row].weave(rows[row+1])
lijst.append(other.coordinaterow[i])
IndexError: list index out of range
如何解决此问题?您只需执行以下操作即可解决此问题:
for i in range(len(self.coordinaterow)):
lijst.append(self.coordinaterow[i])
try:
lijst.append(other.coordinaterow[i])
except IndexError:
pass
你有两行代码导致了这个问题?是lijst.append(other.coordinaterow[i])导致了这个问题,所以你的自我列表比你的其他列表长。是的,就是这样,你知道我如何修改函数使其工作吗?以后,请复制并粘贴你的异常,并进行回溯,不是手动近似。谢谢,错误消失了,但是当我尝试打印结果时,我看起来是这样的:[,]你知道是什么原因导致的吗?你是如何以及在哪里打印结果的?我将输出对象放在一个变量中并打印该变量不确定你在做什么,但如果你使用该
变量并执行打印变量[0].coordinaterow
这能满足你的期望吗?@Pieter:这是一个单独的问题,你真的应该单独问,而不是作为第一个问题解决方案的后续评论。但答案很简单:您还没有为坐标类定义\uuu repr\uuuuuuu
或\uuuu str\uuuuuu
,因此这是默认的字符串表示形式。