Objekte auf "Zuruf" erzeugen
Verfasst: Mittwoch 30. November 2011, 13:45
Hallo,
Ich habe da gerade ein Problem, das etwas kompliziert zu beschreiben, aber hoffentlich ganz einfach ist.
Ich habe es daher mal auf eines der beliebten Tier-Beispiele vereinfacht
Angenommen, ich habe 3 Klassen: Tier, Hund und Katze. Hund und Katze sind von Tier abgeleitet. Alle 3 Klassen besitzen eine Methode gibLaut() mit Rückgabe des entsprechenden Lautes. Die Klasse Tier gibt nur einen allgemeinen Laut zurück.
Ich möchte nun einen Aufruf folgender Art machen:
>>> bello = Tier("Hund")
>>> tom = Tier("Katze")
>>> bello.gibLaut()
'Wuff'
>>> tom.gibLaut()
'Miau'
Toll wäre:
>>> jerry = Tier("Maus")
>>> jerry.gibLaut()
'Das Tier gibt einen Laut'
Die Klasse Maus ist nicht definiert, daher ergibt ein Aufruf von gibLaut() den Rückgabewert aus der Klasse Tier. Sobald aber eine Klasse definiert ist soll der Rückgabewert der entsprechenden gibLaut() Methode aus der Klasse ausgegeben werden.
Die Klasse Tier sollte also feststellen können, ob eine übergebene Zeichenkette als Klasse erzeugt werden kann.
Abstrakt gesprochen möchte ich ein Objekt einer Klasse erzeugen. Die genaue Klasse ist mir aber erst zur Laufzeit bekannt.
Falls jemand das konkrete Problem hilft:
Ich möchte Werte aus Webseiten extrahieren. Dazu gibt es allgemeine Methoden (in der Klasse Tier) und spezielle Methoden, die auf die Website abgestimmt sind. dazu übergebe ich den Domainnamen("Hund","Katze",etc.) und habe Klassen, die auf diese Seiten spezialisiert sind.
Wie gehe ich da am besten ran?
Andy
Ich habe da gerade ein Problem, das etwas kompliziert zu beschreiben, aber hoffentlich ganz einfach ist.
Ich habe es daher mal auf eines der beliebten Tier-Beispiele vereinfacht
Angenommen, ich habe 3 Klassen: Tier, Hund und Katze. Hund und Katze sind von Tier abgeleitet. Alle 3 Klassen besitzen eine Methode gibLaut() mit Rückgabe des entsprechenden Lautes. Die Klasse Tier gibt nur einen allgemeinen Laut zurück.
Ich möchte nun einen Aufruf folgender Art machen:
>>> bello = Tier("Hund")
>>> tom = Tier("Katze")
>>> bello.gibLaut()
'Wuff'
>>> tom.gibLaut()
'Miau'
Toll wäre:
>>> jerry = Tier("Maus")
>>> jerry.gibLaut()
'Das Tier gibt einen Laut'
Die Klasse Maus ist nicht definiert, daher ergibt ein Aufruf von gibLaut() den Rückgabewert aus der Klasse Tier. Sobald aber eine Klasse definiert ist soll der Rückgabewert der entsprechenden gibLaut() Methode aus der Klasse ausgegeben werden.
Die Klasse Tier sollte also feststellen können, ob eine übergebene Zeichenkette als Klasse erzeugt werden kann.
Abstrakt gesprochen möchte ich ein Objekt einer Klasse erzeugen. Die genaue Klasse ist mir aber erst zur Laufzeit bekannt.
Falls jemand das konkrete Problem hilft:
Ich möchte Werte aus Webseiten extrahieren. Dazu gibt es allgemeine Methoden (in der Klasse Tier) und spezielle Methoden, die auf die Website abgestimmt sind. dazu übergebe ich den Domainnamen("Hund","Katze",etc.) und habe Klassen, die auf diese Seiten spezialisiert sind.
Wie gehe ich da am besten ran?
Andy