Subklassen einer Klasse als Instanz aufrufen

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
Fleyershaver
User
Beiträge: 5
Registriert: Dienstag 20. September 2011, 19:21
Kontaktdaten:

Hallo,
ich arbeite gerade an einem Webseitenparser für Python und habe folgendes Problem:
Ich habe die Klasse Parser, welche sehr viele Unterklassen bzw... Unter-Unterklassen hat. Nun möchte ich jede dieser Klassen instanzieren(__init__() ausführen) und zusätzlich danach die Funktionen parse() und save() aufrufen, welche auf in jeder dieser Klassen vorhanden sind.

Folgendes hab ich schon im Internet gefunden, leider bekomme ich damit aber nur alle Klassennamen und bin bisher daran gescheitert es umzuschreiben: http://code.activestate.com/recipes/576 ... ven-class/

Ich hoffe irgendjemand hat einen Tipp für mich

Grüße
Fleyershaver
http://www.filmeo.de - Kostenlose Filme & Serien finden
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Fleyershaver hat geschrieben: ich arbeite gerade an einem Webseitenparser für Python und habe folgendes Problem:
Du meinst einen HTML-Parser? Wenn ja, dann ist das sicherlich nur als Übung gedacht - denn da gibt es schon viele gute :-)
Fleyershaver hat geschrieben: Ich habe die Klasse Parser, welche sehr viele Unterklassen bzw... Unter-Unterklassen hat. Nun möchte ich jede dieser Klassen instanzieren(__init__() ausführen) und zusätzlich danach die Funktionen parse() und save() aufrufen, welche auf in jeder dieser Klassen vorhanden sind.
Mal ganz naiv nachgefragt: Wenn Du von jeder ein Objekt erstellen willst, wieso muss das dann dynamisch stattfinden? Du musst ja doch diese Objekte auch sinnvoll nutzen, also je nach Typ bestimmte Daten übergeben o.ä. Mir ist deine Motivation dazu noch nicht klar und habe irgend wie das Gefühl, dass wir hier ein XY-Problem lösen sollen...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Fleyershaver
User
Beiträge: 5
Registriert: Dienstag 20. September 2011, 19:21
Kontaktdaten:

Es handelt sich schon um ein konkreten Problem. In jede der Unterklassen wird jeweils eine bestimmte Webseite geparst durch die Funktion parse() geparst und später in der Datenbank gespeichert. Nun sind ein zurzeit ka. 30 Parser-Unterklassen die genau gleich aufgerufen und bearbeitet werden müssen, später sollen aber immer weitere hinzugefügt werden.
Um nicht jede dieser Klassen einzeln in der main-Datei aufrufen zu müssen, sodass ich sie bei jeder neuen Unterlasse ändern muss, würde ich das ganze gerne automatisieren.

Zu jeder Unterklasse muss folgendes ausgeführt werden:
parser = IrgendwasParser()
parser.parse()
parser.save()

Hoffe es ist jetzt verständlich genug;)
http://www.filmeo.de - Kostenlose Filme & Serien finden
BlackJack

@Fleyershaver: Die Funktion von der Activestate-Webseite liefert die Klassen und nicht die Namen. Ich sehe also nicht wo das Problem ist?
Antworten