# abstrakte classen reden alle = [] class a: def __init__(self): global alle self.nr = len(alle) self.name = 'e' + str(self.nr) alle.append(self) print 'neu: ' + self.name def msg(self, nachr): if nachr[0] == self.name: print self.name + ': ' + nachr[1] else: if len(alle) > self.nr + 1: # die nachfolgenden beiden Zeilen nicht vertauschen # weil sonst die Meldungen erst beim Leerräumen des # Stacks generiert werden und damit rückwärts print 'durch', self.name, 'weitergeleitet an', 'e' + str(self.nr + 1) alle[self.nr + 1].msg(nachr) # Aufbau der nachr (Nachricht): [adresse, meldung] e0 = a() e1 = a() e2 = a() e0.msg(['e2', 'angekommen!'])