我正在学习“Python Programming in Context”中的示例。在
我正在学习有关类的部分,我们正在构建一个太阳系,我不清楚代码的某一部分。在
class SolarSystem:
def __init__(self, asun):
self.thesun = asun
self.planets = []
def add_planet(self, aplanet):
self.planets.append(aplanet)
def show_planets(self):
for aplanet in self.planets:
print(aplanet)
def num_planets(self):
return len(self.planets)
我不太确定add_planet
和{show_planet
方法如何知道打印出行星的名字?我想我可能漏掉了一些关键的东西,其中一个问题是添加一个方法来总结太阳系的总质量。但我不知道如何从Planets类访问mass的实例变量,以便在SolarSystem类中求和。在
我在github上托管了一个存储库,因为有多个文件,我不想把它们都粘贴在这里。solarsystem这样你就能明白我在说什么了。在
我希望这是有意义的,如果你不清楚什么就问问。 谢谢
我增加了总质量法
^{pr2}$它没用,我也不知道为什么。在
我明白了! 最后一行应该是:
total_mass = total_mass + aplanet.get_mass()
self.planets
包含所有Planet
对象,除了name
之外,这些对象确实包含mass
等。它打印行星名称的原因是print
,为了打印某些内容,首先需要将对象转换为字符串。它可以通过将对象传递给str
函数来实现这一点。str
函数通过调用对象上的__str__
来转换它。如果你看一下Planet
的定义,__str__
会返回行星的名称,因此当行星被打印时,它的名称也会被打印出来。在相关问题 更多 >
编程相关推荐