Если вам нужны разные переменные для каждого вызова, вы можете сделать это:
self.funlist = [(self.data_line_1.setData, self.t, self.x),
(self.data_line_2.setData, self.u, self.y),
(self.data_line_3.setData, self.w, self.z, self.zz9pluralzalpha)]
def do_it(self, index):
f, *args = self.funlist[index]
f(*args)
Если вы вызываете do_it(0)
, то при выполнении первой строки: f, *args = self.funlist[0]
вы получите:
f = self.data_line_1.setData
и args = (self.t, self.x)
Следующая строка становится:
self.data_line_1.setData(self.t, self.x)
Примечание:
(self.t, self.x)
значения будут теми, которые существовали, когда self.funlist
был первоначально создан, и не обязательно значения, к которым self.t, self.x
относятся сейчас.