如何通过带有for循环的字典(python)设置实例的属性

Posted

技术标签:

【中文标题】如何通过带有for循环的字典(python)设置实例的属性【英文标题】:How to set attributes of an instance through a dictionary with a for loop (python) 【发布时间】:2020-08-14 06:24:32 【问题描述】:

我正在尝试通过字典向此类添加属性。我有一本遵循这个顺序的字典(dict)

'Subject' + str(number) : subject introduced previously

例如,

'Subject0' : 'Chemistry'

所以我试图在一个类上实现它,如下所示:

class Subjects:

    def __init__(self, name, dictVar, yearCourse):
        self.name = name
        self.dictVar = dictVar
        self.yearCourse = yearCourse
        self.label = self.name [0:3] + self.yearCourse

    def getLabel(self):
        print (self.label)

for key, value in dict.items:
    key = Subjects(value, key, yearCourse)

原码有对应标识,是格式错误

我从question 中取出了 dict.items

如果我跑了

Subject0.getLabel()

什么也没发生,因为我显然在 for 循环中有错误

for key, value in dict.items:

TypeError: 'builtin_function_or_method' 对象不可迭代

如果你读过整本圣经,谢谢你好人:)

【问题讨论】:

您需要调用dict.items,例如将您的for循环更改为for key, value in dict.items(): 【参考方案1】:

我认为您需要将dict.items 更改为dict.items()

【讨论】:

以上是关于如何通过带有for循环的字典(python)设置实例的属性的主要内容,如果未能解决你的问题,请参考以下文章

使用 for 循环遍历 Python 字典的 3 种方法 !

Python for循环通过序列索引迭代

python 如何循环读取字典中的keys所对应的values

如果全局不起作用,在Python中访问for循环之外的变量?

如何将创建多个字典的 for 循环的输出加入/合并到一个大字典中

python循环遍历字典元素问题求指教