if self.idx == 0:
self.line_0.start = v
self.line_follow.start = v
self.idx += 1
elif self.idx == 1:
self.line_0.end = v
self.line_follow.start = None
self.idx += 1
elif self.idx == ...:
...
以上代码可以简化为
i = self.idx/2
i_f = floor(i)
k = 'start'
if i > i_f:
k = 'end'
self.line_follow.start = None
else:
self.line_follow.start = v
self['line_' + str(i_f)][k] = v
self.idx += 1
但 self['line_' + str(i_f)]
不能这么用,有什么办法能动态调用吗?
试试
getattr(self, 'line_' + str(i_f))