从类中添加字典值

时间:2015-04-03 03:19:43

标签: python python-3.x dictionary

我有类行星存储在字典键中,它是行星的名称,值是行星的大小,然后在字典中添加所有值并打印出来

这是我的班级

 class planets:
    def store(self, name, mass):
        aDict[self.name] = self.mass

    def add(self):
        return sum(aDict.values())


planets.store("Sun",50)

planets.store("Mercury",7)

print(planets.add())

我希望得到57的答案,但是我收到的错误是:

TypeError: store() missing 1 required positional argument: 'mass'

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

planets是一个类,def store(self, name, mass):是一个实例方法。您需要首先使用planets的实例来使用它的实例方法。

p = planets()
p.store("Sun",50)
p.store("Mercury",7)
print(p.add())

第二个问题,您必须使用mass来引用参数mass而不是self.messself.mess是行星对象的属性。而且,您需要在aDict方法中初始化__init__属性。因此,您可以使用以下代码定义类。

class planets:
    def __init__(self):
        self.aDict = {}

    def store(self, name, mass):
        self.aDict[name] = mass

    def add(self):
        return sum(self.aDict.values())