假设我有一堆以下类的实例:
class Test:
def __init__(self):
self.x = 1
tests = [Test() for _ in range(10)]
现在,假设我要将每个实例的x
更新为range(10)
。这样做的一种好方法是什么?
最直接的方法是:
for t, val in zip(tests,range(10)):
t.x = val
可以通过列表理解吗?
[z[0].x = z[1] for z in zip(tests, range(10))]
给出一个错误。我猜你可以在函数中添加一个setter方法并调用它?
class Test:
def __init__(self):
self.x = 1
def setter(self, val):
self.x = val
tests = [Test() for _ in range(10)]
[z[0].setter(z[1]) for z in zip(tests, range(10)]
for循环看起来越来越好。那是路要走吗?