假设我必须创建一个具有大量变量的类。我可以使用for循环将每个设置为自己吗? 那就是:
class New(object):
def __init__(self, var1, var2, var3, var4, var5, var6):
for x in [var1, var2, var3, var4, var5, var6]:
self.x = x
显然上面的代码不起作用,但是可以这样做吗?更好的方法吗? 而不是打字
self.var1 = var1
self.var2 = var2
等?
答案 0 :(得分:1)
您可以存储属性名称列表......
In [1]: class New(object):
...: names = ['foo', 'bar']
...: def __init__(self, *args):
...: for k, v in zip(New.names, args):
...: setattr(self, k, v)
...:
In [2]: a = New(1, 2)
In [3]: a.foo
Out[3]: 1
或使用关键字参数:
In [1]: class New(object):
...: def __init__(self, **kwargs):
...: for k, v in kwargs.iteritems():
...: setattr(self, k, v)
...:
In [2]: a = New(foo=1, bar=2)
In [3]: a.foo
Out[3]: 1