Dynamische Methoden/Attribute zur Laufzeit

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 5. September 2008, 17:23

Hi,
ich möchte eine Klasse schreiben die zur Laufzeit eine XML Datei liest und aus einigen der Daten Methoden oder Attribute erstellt. Die Frage wird Gerold am ehesten verstehen ;)

Es geht um Mikrocontroller. So ein Mikrocontroller hat Funktionsregister die einen Namen und eine Adresse haben. Diese Daten stehen in der XML Datei.

Ich möchte nach dem Einlesen der XML Datei zb so etwas machen können:

Code: Alles auswählen

Mikrocontroller.Register=200
Der Wert soll später in die zum Register gehörenden Adresse geschrieben werden. Das gleiche soll auch umgekehrt gehen. Von Hand würde ich das hinbekommen, aber wie krieg ich das zur Laufzeit hin?
BlackJack

Freitag 5. September 2008, 18:40

Mir ist irgendwie noch unklar was Du genau machen willst, darum nur die allgemeinen Hinweise auf `getattr()`/`setattr()` und die speziellen Methoden `__getattr__()` und `__setattr__()`.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 5. September 2008, 18:47

BlackJack hat geschrieben:Mir ist irgendwie noch unklar was Du genau machen willst...
Deshalb sagte ich, Gerold wird die Frage am ehesten Verstehen ;)

Um das zu erklären müsste ich weiter ausholen. Ich werde mir aber mal die Vorschläge anschauen und sehen ob ich damit was anfangen kann. Wenn nicht komm ich wieder ;)
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 5. September 2008, 19:39

Ok, da bin ich wieder. Die Richtung dürte stimmen, ich bin mir nur noch nicht ganz klar ob das reicht. Deshalb möchte ich versuchen das anhand eines anderen Beispiels zu verdeutlichen das vielleicht geläufiger ist.

Angenommen ich hab eine Klasse "Internet" und eine XML Datei mit einer Liste mit mehreren Datensätzen "Webseite" und "IP". Ich möchte jetzt beim erstellen einer Instanz der Klasse Internet mitteilen welche XML Datei verwendet werden soll. Der Konstruktor soll die Datei auswerten.

Anschließen möchte ich eine Funktion aufrufen die irgendwas an die IP Adresse der angegebenen Webseite sendet, also in etwa so:

Code: Alles auswählen

Internet.Website="Hallo Welt!"
Es soll jetzt eine Funktion aufgerufen werden die "Hallo Welt!" an die IP Adresse von "Website" sendet. Ich hoffe das macht's deutlicher
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Freitag 5. September 2008, 19:52

Ganz habe ich es auch nicht verstanden. Könnten evtl. Properties das sein, was Du suchst. Siehe: property().
MfG
HWK
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 5. September 2008, 20:22

Ja, irgendwas aus setattr() und property(). Ich komm nur nicht dahinter wie.

Ich versuche es mal weiter zu verdeutlichen.

Datei "deutscheseiten.xml"
<root>
<heisede>
<ip>123.45.67.89</ip>
</heisede>
<sportde>
<ip>98.76.54.321</ip>
</sportde>
.
.
.
</root>
Weiterhin habe ich die Klasst "Internet". Ich möchte jetzt eine Instanz davon erstellen

web = Internet("deutscheseiten.xml")
web.heisede="Hallo Welt!"

Jetzt will ich "Hallo Welt! an 123.45.67.89 schicken
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 5. September 2008, 21:03

Du suchst ``__setattr__``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten