惑星は単なる文字列なので、属性を設定することはできません。さらに、フェルディナンドが示唆するように多くのグローバル変数を動的に作成することは、非常にまれにしか良い考えではありませんdict
。
フェルディナンドの答えに基づいて、惑星の名前を属性として含めることをお勧めします(必要になることがわかると思います)。これで、これらのPlanet
オブジェクトを adict
または a 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)
編集:以前の提案は忘れてください。考えが変わりました。