python:将可变数量的属性添加到 python class

python: add a variable numbers of attributes to a python class

我正在寻找使用列表将可变数量的属性添加到 python 中的 class 的可能性。

class X():

    def __init__(self,mylist):
        for element in list:
        self.element = ''

所以如果我有

制表符 = ['food','name','map']

我会得到一个class属性如下(伪代码)

myclass = X(['food','name','map'])

print(X.food)
''

稍后我可以修改来自其他 class 的 X.food。

后期编辑:问题:How to access object attribute given string corresponding to name of that attribute 类似,但不使用列表为 class 提供名称或参数。此外,在该特定问题中,任何答案均未使用 setattr。因此,此问题的答案如下。

您可以使用 setattr.

class X:
    def __init__(self, attrs):
        for attr in attrs:
            setattr(self, attr, "")

使用setattr:

class X():
    def __init__(self,mylist):
        for element in mylist:
            setattr(self, element, '')

这会将属性添加到 class 实例 myclass,如果您想添加到 class 目标 X 而不是 self

            setattr(X, element, '')