声明变量 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])
这似乎是一个奇怪的问题,但问题是我有一个 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])