0

假设我必须创建一个有很多变量的类。我可以使用 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

ETC。?

4

1 回答 1

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
于 2013-05-08T22:02:16.920 回答