Ну, планеты - это просто строки, поэтому вы не можете устанавливать на них атрибуты.Более того, динамическое создание множества глобальных переменных, как предполагает Фердинанд, очень очень редко хорошая идея, лучше использовать dict
.
Опираясь на ответ Фердинанда, я предлагаю включить название планеты в качестве атрибута (думаю, вы обнаружите, что оно вам понадобится).Теперь вы можете иметь эти Planet
объекты в dict
или list
(для сохранения порядка), в зависимости от того, что вам подходит в данный момент, и вся соответствующая информация всегда под рукой.
planet = ['merc','venus','earth','mars','jupiter','saturn','uranus','neptune']
planetv = [2, 3, 4, 5, 6, 7, 8, 9]
planetp = [10, 20, 30, 40, 50, 60, 70, 80]
class Planet(object):
def __init__(self, name, m, p):
self.name = name
self.m = m
self.p = p
planets = [Planet(name, m, p) for name, m, p in zip(planet, planetv, planetp)]
planet_dict = dict((p.name, p) for p in planets)
for p in planets:
print "{0}: {1} {2}".format(p.name, p.m, p.p)
print "Mass of earth: {0}".format(planet_dict["earth"].m)
РЕДАКТИРОВАТЬ: Забудьте мое предыдущее предложение, я передумал.