声明不知道nam的变量

2024-10-04 07:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

所以这个班看起来像

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

实际上,这是一个类,我将扩展,所以我不知道如何做到这一点

我想创建一个泛型类,它在每个扩展情况下都定义了不同的变量

如何做到这一点,或如何进行更好的办法


Tags: 实例keyinselfforobjectinitdef
2条回答

您可以使用setattr

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

但我不明白这有什么意义,因为你不知道你设置的钥匙,所以你不能在任何地方使用它们

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

self.data = kwargs

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

我假设您希望变量名是键

您可以使用^{}内置函数:

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

相关问题 更多 >