我正在研究我的 Miller & Ranum 中的“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
andshow_planets
方法是如何工作的。在 shell 中,我使用“Planet”类创建了一些行星。行星类有更多的参数,而不仅仅是名称。它还包括名称、半径、质量、与太阳的距离和卫星数量。当我将行星对象传递给 SolarSystem 类时,self.planets 列表是否包含传递给行星对象的所有参数?如果是这样,该方法如何show_planet
知道打印出行星的正确名称?我想我可能在这里错过了一些关键的东西,其中一个问题是添加一种方法来总结太阳系的总质量。但我不确定如何从 Planets 类访问质量的实例变量,以便我可以在 SolarSystem 类中对它们求和。
我在 github 上托管了一个存储库,因为有多个文件,我不想把它全部粘贴到这里。 solarsystem 这样你就可以看到我在说什么。
我希望这是有道理的,请问您是否有任何不清楚的地方。谢谢
我添加了一个 total_mass 方法
def total_mass(self):
total_mass = 0
for aplanet in self.planets:
total_mass = total_mass + get_mass(aplanet)
return total_mass
它没有用,我不知道为什么。
我得到了它!最后一行应该是:
total_mass = total_mass + aplanet.get_mass()