python3 self动态调用?

作者站长头像
站长
· 阅读数 19
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)] 不能这么用,有什么办法能动态调用吗?

回复
1个回答
avatar
test
2024-07-09

试试 getattr(self, 'line_' + str(i_f))

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容