声明变量 w/o 知道名称

Declaring variable w/o knowing the name

这似乎是一个奇怪的问题,但问题是我有一个 class 我想为其分配一个变量(因此在 __init__ 中使用 self.vname = Whatever),但是这个变量名在实例化中作为 wkargs 传递。

所以 class 看起来像

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

实际上这是一个 class,我将对其进行扩展,所以我不确定如何执行此操作。

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

如何做,或者如何执行更好的方法?

您可以使用 setattr:

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

但我不明白这一点,因为您不会知道您设置的密钥,因此您将无法在任何地方使用它们。

为什么不把它们记在字典里呢?

self.data = kwargs

然后您可以随时遍历 self.data 及其值。

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

您可以使用setattr()内置函数:

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