知道名称后声明变量

时间:2015-03-29 19:34:54

标签: python python-3.4

这看起来似乎是一个奇怪的问题,但问题是我有一个我想要分配变量的类(所以在self.vname = Whatever中使用__init__),但这个变量名称作为wkargs传递在实例化中。

所以班级看起来像

class Object(object):
    def __init__(self, **kwargs):
        for key in kwargs.keys():
            self.what_do_i_type_here = kwargs[key]

实际上这是一个我将延伸的课程,所以我不知道该怎么做。

我想创建一个泛型类,在每个扩展案例中都会定义不同的变量。

怎么做,或者如何更好地实施?

2 个答案:

答案 0 :(得分:3)

您可以使用setattr

for key, value in kwargs.items()
    setattr(self, key, value)

但是我没有看到这一点,因为你不会知道你设置的键,所以你无法在任何地方使用它们。

为什么不将它们保存在字典中?

self.data = kwargs

然后您可以随时迭代self.data及其值。

答案 1 :(得分:1)

我将假设您希望变量名称成为关键。

您可以使用setattr()内置功能:

for key in kwargs:
    setattr(self,key,kwargs[key])