2016-11-03 3 views
0

В этом коде конструктор начинается с запроса имени солнца, созданного из другого класса под названием Sun. Солнце создает объект солнца с 4 атрибутами: имя, радиус, массу и темп. То, что я пытаюсь сделать в этом классе solarsystem, состоит в том, чтобы вычислить общую массу всех планет плюс массу объекта солнца, но я совершенно смущен тем, как я получаю доступ к атрибутам солнечного объекта, которые я создал через класс Sun. Неужто не нашел хорошее объяснение ещеИспользование одного объекта класса в другом классе PYTHON

Мой код ниже:

class SolarSystem: 

    def __init__(self, asun): 
     self.thesun = asun 
     self.planets = [] 

    def addPlanet(self, aplanet): 
     self.planets.append(aplanet) 

    def showPlanet(self): 
     for aplanet in self.planets: 
      print(aplanet) 

    def numPlanets(self): 
     num = 0; 
     for aplanet in self.planets: 
      num = num + 1 
     planets = num + 1 
     print("There are %d in this solar system." % (planets)) 

    def totalMass(self): 
     mass = 0 
     sun = self.thesun 
     sunMass = sun.mass 
     for aplanet in self.planets: 
      mass = mass + aplanet.mass 
     totalMass = mass + sunMass 
     print("The total mass of this solar system is %d" % (mass)) 

ответ

0

Следующий код работает для меня, я просто должен был изменить print заявление в totalMass() использовать totalMass, не mass:

class SolarSystem: 
    def __init__(self, asun): 
     self.thesun = asun 
     self.planets = [] 

    def addPlanet(self, aplanet): 
     self.planets.append(aplanet) 

    def showPlanet(self): 
     for aplanet in self.planets: 
      print(aplanet) 

    def numPlanets(self): 
     num = 0; 
     for aplanet in self.planets: 
      num = num + 1 
     planets = num + 1 
     print("There are %d in this solar system." % (planets)) 

    def totalMass(self): 
     mass = 0 
     sun = self.thesun 
     sunMass = sun.mass 
     for aplanet in self.planets: 
      mass = mass + aplanet.mass 
     totalMass = mass + sunMass 
     print("The total mass of this solar system is %d" % (totalMass)) 

class Sun: 
    def __init__(self, name, radius, mass, temp): 
     self.name = name 
     self.radius = radius 
     self.mass = mass 
     self.temp = temp 

test_sun = Sun("test", 4, 100, 2) 

test_solar_system = SolarSystem(test_sun) 
test_solar_system.totalMass() 
+1

Спасибо, все время, о котором я думал, я неправильно называл объекты класса. Я нашел лучший способ написать код. self.thesun.mass – Gonjirou

+0

С удовольствием помогу, не забудьте принять мой ответ, чтобы люди не увидели это как неотвеченный вопрос, когда они пытаются помочь. Кроме того, вы можете использовать ключ тильды (\ ') для создания фрагментов кода одной строки, например:' self.thesun.mass', который может быть проще читать. – Darkstarone

Смежные вопросы