我有类行星存储在字典键中,它是行星的名称,值是行星的大小,然后在字典中添加所有值并打印出来
这是我的班级
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'
如何解决这个问题?
答案 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.mess
。 self.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())