Subklasse eines list Objekts?

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
Benutzeravatar
Don Polettone
User
Beiträge: 115
Registriert: Dienstag 23. November 2010, 20:26
Wohnort: Schweiz

Hi mal wieder,

habe immer wieder mal das Problemchen, dass ich gerne ein Listen - Objekt erzeugen würde, welches noch weitere Eigenschaften aufweist als eben nur eine plumpe Liste - sprich: Ich würde gerne eine Subklasse erzeugen deren Superklasse die list Klasse von Python ist.

Nur: Wie macht man das? "list" an sich ist ja keine Klasse..? Welches ist die eigentliche Superklasse, die ich brauche?

Gruss und danke,


Henry
Ich code, also bin ich.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Doch, list an sich ist eine Klasse, daher kannst du auch ganz normal davon erben.
Das Leben ist wie ein Tennisball.
Benutzeravatar
Don Polettone
User
Beiträge: 115
Registriert: Dienstag 23. November 2010, 20:26
Wohnort: Schweiz

ist ja krass...

IDLE 1.2.4
>>> x = [1, 2, 3]
>>> print x.__class__.__name__
list
>>>

danke!

Frag mich gerade, was ich denn damals falsch gemacht hatte, dass ich das Gefühl hatte das ginge nicht... ich probier's nochmals.
Ich code, also bin ich.
BlackJack

@Henry Jones Jr.: Vielleicht hast Du es nicht gut gefunden, dass alle Methoden die eine Liste zurück geben dann wieder ein normales `list`-Objekt liefern und kein Objekt Deiner Klasse.

Ich halte nicht viel davon Klassen wie `list`, `dict`, und so weiter als Basisklassen zu verwenden, denn in nur ganz seltenen Fällen möchte man *wirklich* eine Subklasse dieser Typen haben, sondern nur ein paar der Methoden die ähnlich funktionieren und man endet dann mit Objekten die einen Haufen Methoden haben die keinen Sinn machen und/oder nicht wie erwartet funktionieren weil sie den Zustand des Objekts korrumpieren.
Benutzeravatar
Don Polettone
User
Beiträge: 115
Registriert: Dienstag 23. November 2010, 20:26
Wohnort: Schweiz

da hast Du schon Recht, wenn ein Objekt eine Liste braucht, dann hab ich die meist als Instanzvariable mitgegeben und nicht das Objekt selbst als Liste erzeugt.

Ist schon in der Richtung, was Du damit gemeint hast, oder?
Ich code, also bin ich.
Antworten