Python 加上';它是一个类的属性
我有一门课是这样的:Python 加上';它是一个类的属性,python,class,dictionary,Python,Class,Dictionary,我有一门课是这样的: class MyClass: def __init__(self, id, names): self.id = id self.names = names 稍后,我会这样做: classlist = [] classlist.append(MyClass("1", {"Key1", "Value"})) #add first key-value pair classlist[0].names["Key2"] = "New Value
class MyClass:
def __init__(self, id, names):
self.id = id
self.names = names
稍后,我会这样做:
classlist = []
classlist.append(MyClass("1", {"Key1", "Value"})) #add first key-value pair
classlist[0].names["Key2"] = "New Value" #add second key-value pair
但是它在第三行失败了
TypeError:“set”对象不支持项分配
。
我是Python新手,请教我如何正确操作。您传递的是一个集合,而不是字典。应该是
classlist.append(MyClass("1", {"Key1": "Value"}))
注意
:
而不是,
分隔键1和值{arg,arg,arg}
是创建集合的缩写。您应该使用“:“for dictionary 现在我觉得自己很笨。谢谢你的提示@彼得。这是一个容易犯的错误。没必要觉得自己很笨。但是,答案是错误的。Python的内置异常通常非常善于指出错误。在错误消息似乎没有帮助的情况下,几乎总是由于缺少括号而导致的“类的属性”在Python中意味着非常特定的东西;而你的代码却没有。要使其成为类属性,它将出现在MyClass.names
上,但您可以在上的\uuu init\uuuu()
方法中设置它。我们通常称之为“实例的属性”。希望这有助于澄清一些困惑(这与您的实际问题无关)