Code: Alles auswählen
Haus1=Haus(1)
Haus2=Haus(2)
...
Code: Alles auswählen
for i in range(100):
Haus(i+1)
Code: Alles auswählen
nr=str(i+1)
Haus+nr=Haus(i+1)
Gibt es da irgendeine Möglichkeit dieses Problem zu lösen?
Code: Alles auswählen
Haus1=Haus(1)
Haus2=Haus(2)
...
Code: Alles auswählen
for i in range(100):
Haus(i+1)
Code: Alles auswählen
nr=str(i+1)
Haus+nr=Haus(i+1)
Code: Alles auswählen
from pprint import pprint as pp
class Haus(object):
def __init__(self, id_):
self.id_ = id_
def __repr__(self):
return "<%s.%s with id %d>" %(
self.__class__.__module__,
self.__class__.__name__, self.id_)
ns = locals()
for idx in xrange(5):
ns["haus_%d" % idx] = Haus(idx)
pp(ns)
print haus_0
Code: Alles auswählen
haeuser = [Haus(i) for i in xrange(100)]
# Zugriff mit:
haus = haeuser[0]
Code: Alles auswählen
from pprint import pprint as pp
class Haus(object):
def __init__(self, id_):
self.id_ = id_
def __repr__(self):
return "<%s.%s with id %d>" %(
self.__class__.__module__,
self.__class__.__name__, self.id_)
class Stadt(object):
def __init__(self):
self._haeuser = []
def create(self, id_):
self._haeuser.append(Haus(id_))
def get(self, id_):
self._haeuser[id_]
def __iter__(self):
return iter(self._haeuser)
s = Stadt()
for idx in xrange(5):
s.create(idx)
pp(tuple(iter(s)))
Ich weiß Hab ja extra auch geschrieben das man das nicht verwenden soll. Aber hey, in Ruby mache ich sowas ähnliches den ganzen Tag *duck* -- Joke.blackbird hat geschrieben:ARGH. Für das Schnippsel gehörst du geschlagen Poker!
Naja, immer zeigt dieses Beispiel auch ganz nett, was mit Python so alles möglich ist und in anderen Sprache so nicht gehen würdeBlackJack hat geschrieben:Vielleicht sollte man das besser nicht verraten weil's so schlechter Stil ist und statt dessen lieber den besseren Stil zeigen.