Seite 1 von 1

Subklassen einer Klasse als Instanz aufrufen

Verfasst: Freitag 20. Januar 2012, 16:57
von Fleyershaver
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

Re: Subklassen einer Klasse als Instanz aufrufen

Verfasst: Freitag 20. Januar 2012, 17:36
von Hyperion
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...

Re: Subklassen einer Klasse als Instanz aufrufen

Verfasst: Freitag 20. Januar 2012, 18:26
von Fleyershaver
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;)

Re: Subklassen einer Klasse als Instanz aufrufen

Verfasst: Freitag 20. Januar 2012, 18:36
von BlackJack
@Fleyershaver: Die Funktion von der Activestate-Webseite liefert die Klassen und nicht die Namen. Ich sehe also nicht wo das Problem ist?