python - 实例化具有任意数量属性的类

标签 python class variables variable-assignment

这个问题专门针对此处 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/

相关文章:

python - 在 Python 中复制迭代器

Python 3.3 将列表中的字符串写入 txt 文件

java - 输出用户数据到显示类

php - 在我的类(class)文件中出现错误 “Unexpected $end”

javascript - 增加变量名

java - 试图调用本地数据库变量并且应用程序停止工作

python - Python 对数函数的精度

python - 在列表中找到一段字符串并替换

java - 为什么 toString() 不能是静态方法?

c++ - 指针是否会延长自动存储变量的生命周期?