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
Subklassen einer Klasse als Instanz aufrufen
-
- User
- Beiträge: 5
- Registriert: Dienstag 20. September 2011, 19:21
- Kontaktdaten:
http://www.filmeo.de - Kostenlose Filme & Serien finden
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du meinst einen HTML-Parser? Wenn ja, dann ist das sicherlich nur als Übung gedacht - denn da gibt es schon viele guteFleyershaver hat geschrieben: ich arbeite gerade an einem Webseitenparser für Python und habe folgendes Problem:
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...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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- 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;)
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
@Fleyershaver: Die Funktion von der Activestate-Webseite liefert die Klassen und nicht die Namen. Ich sehe also nicht wo das Problem ist?