Seite 1 von 1

Verfasst: Mittwoch 11. Februar 2009, 18:47
von BlackVivi
ice2k3 hat geschrieben:[ironie]Ohja, und ich hab natürlich zwei Instanzen im Speicher statt einem, DAS ist natürlich ein ausschlaggebendes Argument.[/ironie]
Ist bei Vererbung nicht anders :P Nur eben nicht Explizit, quasi.

Und wie die beiden schon vorher gesagt haben:

Code: Alles auswählen

In [1]: import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
[...]
Außerdem soll man ja nicht mit verschlossenen Augen durch die Welt gehen. In Ordnung, es gibt eine Stackspezifikation - aber sie sagt nix darüber, dass man nicht mehr Methoden haben darf. Die werden halt dann nicht benutzt.. Außerdem sollte man nicht gegen die Sprache arbeiten, egal was irgendwelche Spezifikationen sagen. Stupide einem Unterrichtsstoff folgen ist _nie_ richtig. Wenn es deinen Dozenten/Professor nicht gefällt, dann steh drüber. Denn nur so erreicht man was im Leben...

Verfasst: Donnerstag 12. Februar 2009, 02:08
von BlackJack
Also ich finde es ehrlich gesagt eleganter *nicht* von `list` oder `dequeue` zu erben. Und ich würde auch bei `list` bleiben, solange nicht messbare Probleme damit entstehen.

Die vielen zusätzlichen Methoden, die nicht zu einem Stack gehören, gehören halt nicht zu einem Stack. Für einen Aussenstehenden, der nur ein Exemplar davon in die Hand bekommt, ist nicht ersichtlich welche der Methoden nun zur offiziellen API gehören, und welche nicht.

Das ist IMHO so ähnlich wie *-Importe bei Modulen. Solche die das tun, haben plötzlich einen Haufen mehr Inhalt und man kann in einer interaktiven Shell nicht mehr so einfach sehen was eigentlich in dem Modul definiert wird, und was nur zufällig dort ist und ignoriert werden muss.

Verfasst: Donnerstag 12. Februar 2009, 09:07
von ms4py
Endlich mal jemand, der auf meiner Seite ist...
Habe schon gedacht, ich stehe alleine da.

Auch wenn der Vorteil der deque wahrscheinlich nicht messbar ist, werde ich trotzdem diese Klasse einsetzen. Wenn ich in meiner Doku alias Praxisarbeit schreibe, dass ich diese aufgrund der Komplexität ausgewählt habe und noch ein Landau-Symbol dazu schreibe, macht das sicher einen guten Eindruck bei den Bewertern ;)

Verfasst: Donnerstag 12. Februar 2009, 09:50
von Leonidas
BlackJack hat geschrieben:Die vielen zusätzlichen Methoden, die nicht zu einem Stack gehören, gehören halt nicht zu einem Stack. Für einen Aussenstehenden, der nur ein Exemplar davon in die Hand bekommt, ist nicht ersichtlich welche der Methoden nun zur offiziellen API gehören, und welche nicht.
Was da zur offiziellen API gehört ist ja durch die Spezifikation durchaus dokumentiert. ``__class__`` gehört so gesehen ja auch nicht zur Spezifikation. Außerdem finde ich dass da eine "Stack IST_EINE Dequeue" Relation existiert.

Das würde ich nicht mit ``*-Importen`` vergleichen (denn man überschreibt ja durch das Vererben nichts unabsichtlicherweise) sondern eher mit der Diskussion letztens um das ``_``.

Letztendlich ist es mir aber ziemlich egal. :arrow: