这个问题专门针对此处 Python 类的上下文,但可以更一般化。我正在创建一个 m
类,它将使用四个变量进行初始化,然后我想将其分配给该类的实例化。现在,它看起来像这样:
class mm(object):
def __init__(self, a, b, c, r):
self.a = a
self.b = b
self.c = c
self.r = r
# etc.
但是,我希望能够在一行中将变量分配给 self
,类似于伪代码:
def __init__(self, a, b, c, r):
self.varname = var for var in [a, b, c, r]
如果这可以推广到任意数量的变量,那就更好了,这样你就可以得到类似的东西:
def __init__(self, **kwargs):
assign(self, varname, value) for varname, value in kwargs.iteritems()
但是,据我所知,像这样循环遍历语句是不可能的。有谁知道这样做的方法吗?
最佳答案
您可以使用setattr
:
class mm(object):
def __init__(self, **kwargs):
for varname, value in kwargs.iteritems():
setattr(self, varname, value)
关于python - 实例化具有任意数量属性的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544176/