ich bin relativ neu in Python (und ganz neu im Python-Forum) und habe eine kleine (hoffentlich einfache) Frage, ob ich in Python ein Klassen-Objekt sich selbst ersetzen lassen kann?
Die Sache ist die, dass ich eine globale Liste anlege, in die sich neue initialisierte Objekten eintragen sollen, falls dort noch kein Objekt mit dem eigenen 'Namen' existiert. Falls doch, soll das neue (nun temporaere) Objekt sich selbst durch das existeirende ersetzen/referenzieren.
Code: Alles auswählen
dingsList = []
class dings(object):
def __init__(self):
self._dings = ""
def getDings(self):
return self._dings
def _findDings(self,dingsName):
dings = None
# oder glecih was mit filter...?
for dingsIter in dingsList:
if dingsIter.getDings() == dingsName:
dings = dingsIter
return dings
def setDings(self,dingsName):
self._dings = dingsName
existingDings = self._findDings(self._dings)
if not existingDings:
dingsList.append(self)
else:
# so nicht, aber wie dann?
self = existingDings
self = existingDings funktioniert ja nicht, aber kann ich irgendwie anders das Objekt umreferenzieren, i.e. den Pointer umbiegen...?
Ein 'externer' Abgleich der Objekte in der Liste waehrend der Initialisierung eines neuen Objekts ginge natuerlich auch, aber imho waere es schon nett, wenn man es 'intern' gleich abhandeln koennte
Ich hoffe, dass ich mein Problem halbwegs verstaendlich rueberbringen konnte -- ueber alle Tipps und Ideen bin ich dankbar.
Gruesse -- Thomas