Das erklärt wie man Vererbt, von belibigen Objekten, und eine Transferleistung von ``object`` zu ``list`` traue ich den meisten Leuten zu. Und es erklärt auch, dass man in Kind-Klassen Funktionen überschreibt, so wie in deinem Beispiel. Und mehr bieten deine Beispiele ja auch nicht, oder?jens hat geschrieben:Schön und gut, aber es erklärt IMHO nicht so einfach, wie ich von list oder dict Sinnvoll erben kann.
Python Doku: von list / dict erben...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jetzt schimpft doch nicht mit dem Jens.
Ich finds gut. Ein paar anschauliche Beispiele mehr.
Ich finds gut. Ein paar anschauliche Beispiele mehr.
Naja, offenbar eben nicht ...mitsuhiko hat geschrieben:War die Wiki-Seite jetzt wirklich nötig? Ist doch irgendwie Basiswissen über Vererbung oder?
Andererseits frage ich mich gerade, ob es angebracht ist, aus jens' Wissen um absolute OOP-Grundlagen auf die Code-Qualität seines CMS-Projekts zu schließen ...
Meine €0.02: Ich finde Jens Anliegen eigentlich toll: Die wiki-Seiten sind ja nicht als Ersatzdoku gedacht, sondern dazu Leuten mit konkreten Problemen Antworten zu bieten. Solche Probleme haben Anfänger. Dieses Stadium mag bei manchem hier schon länger her sein, aber es ist doch gut, wenn sich jemand darum Gedanken macht.
Die Qualität der wiki-Seiten stimmt in euren Augen nicht? Es fehlen Links (z. B. auf die Classes-Doku)? Es ist ein wiki! Ich bin sicher, Jens nimmt es niemanden übel, wenn ein Verweis auf die offziziöse Doku eingefügt würde, oder?
Gruß,
Christian
Die Qualität der wiki-Seiten stimmt in euren Augen nicht? Es fehlen Links (z. B. auf die Classes-Doku)? Es ist ein wiki! Ich bin sicher, Jens nimmt es niemanden übel, wenn ein Verweis auf die offziziöse Doku eingefügt würde, oder?
Gruß,
Christian
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Noch eine Frage zum Thema von dict erben. Geht das auch anders:
Code: Alles auswählen
class Foo(dict):
def new(self, new_data):
self.clear()
self.update(new_data)
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Na, das dict soll von außen neu gesetzt werden, aber es soll ja bei meiner eigenen Klasse bleiben.
Noch ein Beispiel:
Dabei geht es mir jetzt nicht darum, das ich nicht d = {2:"bar"} machen kann, sondern nur, das MeinDict.new() mir umständlich erscheint.
Noch ein Beispiel:
Code: Alles auswählen
class MeinDict(dict):
def new(self, new_data):
self.clear()
self.update(new_data)
d = MeinDict({1:"foo"})
print d # -> {1: 'foo'}
# neu setzten
d.new({2:"bar"})
print d # -> {2: 'bar'}
print type(d) # -> <class '__main__.MeinDict'>
# so geht's natürlich nicht:
d = {2:"bar"}
print type(d) # -> <type 'dict'>
Ich würde copy überschreiben, wenn __init__ dasselbe Verhalten wie bei einem normalen dict aufweist geht:
Kein großer unterschied aber imho vernünftiger.
Code: Alles auswählen
class Foo(dict):
def copy(self):
return self.__class__(self)