Python Doku: von list / dict erben...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Eingangs hatte ich gefragt, ob jemand eine Webseite nennen kann wo sowas steht. Brauchbare Treffer gab es nicht.
Also hab ich das mal kurz und knapp in's Wiki geschrieben. Das war nun falsch?
...motiviert mich jetzt tierisch, mehr im Wiki zu schreiben...
Also hab ich das mal kurz und knapp in's Wiki geschrieben. Das war nun falsch?
...motiviert mich jetzt tierisch, mehr im Wiki zu schreiben...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
9. Classes zählt nicht?jens hat geschrieben:Eingangs hatte ich gefragt, ob jemand eine Webseite nennen kann wo sowas steht. Brauchbare Treffer gab es nicht.
Naja, es geht ja nicht darum dass du etwas geschrieben hast, das ist ja schön und gut, sondern dass du etwas geschrieben hast was nicht notwendig war. Stattdessen hättest du etwa [wiki]Module[/wiki] oder [wiki]Neue Features[/wiki] um Punkte, Beschreibungen und Absätze erweitern können.jens hat geschrieben:...motiviert mich jetzt tierisch, mehr im Wiki zu schreiben...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das ist ehr allgemein über vererben. Schön und gut, aber es erklärt IMHO nicht so einfach, wie ich von list oder dict Sinnvoll erben kann. Ein Blick auf die Beispiele die ich in's Wiki gestellt habe tun genau das.Leonidas hat geschrieben:9. Classes zählt nicht?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
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)