[Python-de] Stimmt das so?
Achim Domma (ProCoders)
domma at procoders.net
Mit Jul 9 17:55:30 EDT 2003
Hi Jan,
> Thing = Entity("thing")
>
> Also, ich übergebe "thing" in die init Funktion der Klasse Entity. Dann
> werden dort erst mal die 2 Konstruktoren mit Namen self.mObjects und
> self.mAgents instanziert. Ich hoffe das stimmt soweit.
fast, aber nicht ganz. Du läßt Python eine Instanz der Klasse 'Entity'
erzeugen. Während Python diese erzeugt ruft es die __init__ Funktion auf, um
die Instanz zu initialisieren. Die {}s sind keine Konstruktoren, sondern
leere Dictionaries. D.h. self.mObjects und self.mAgents wird jeweils ein
(unterschiedlicher) leerer Dictionaire zugewiesen.
> Danach wandle ich die Id von einem Objekt in einen String um und übergebe
> diesen in die Variable "THING". ( __str__)
Nein!
> Die Funktion objects wird doch in diesem Fall, oder im Moment
> noch gar nicht aufgerufen oder?
Stimmt! In deinem Beispiel wird wirklich erstmal nur __init__ aufgerufen.
__str__ wird wie gesagt nur benutzt, wenn du 'Thing' in einen String
umwandeln wolltest. Also z.B. so:
blabla = str(Thing)
oder
print Thing
Gruß,
Achim