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
メソッドとメソッドが正確にどのように機能するかはよくわかりませんshow_planets
。シェルでは、「Planet」クラスを使用していくつかの惑星を作成しました。惑星クラスには、名前だけでなく、より多くのパラメーターがあります。名前、半径、質量、太陽からの距離、月の数も含まれます。Planet オブジェクトを SolarSystem クラスに渡すと、self.planets リストには Planet オブジェクトに渡されたすべての引数が含まれますか? もしそうなら、メソッドはどのようにしてshow_planet
惑星の名前だけを出力することを知っていますか? ここで重要なことを見逃していると思います。質問の 1 つは、太陽系の総質量を合計する方法を追加することです。しかし、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()