Seite 1 von 2
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Sonntag 18. November 2012, 10:09
von AnyOne
@/me: Danke für den Beispielcode, jetzt wird mir der Unterschied bewusst und das wird auch direkt geändert. Ich werde in Zukunft beim Programmieren von Python davon ausgehen, dass das Programm von Leuten verwendet wird, die nicht darin rumpfuschen
@Siruis3: Das heißt also, wenn ich eine Klasse ableite und darin die "super" Funktion verwende, dann weiß der Interpreter direkt, dass damit die Elternklasse gemeint ist? Interessant das ich davon bisher leider nichts in der Literatur gefunden habe, scheint ja wirklich viel Käse auf dem Markt zu geben -.-
@BlackJack: Ich denke das trug wirklich zur Verwirrung bei! Ich wollte damit lediglich andeuten, dass diese Werte zu Beginn einmal vom Nutzer eingegeben werden sollen (es wird später noch eine GUI geben, welche das abfragt) und dann keine Veränderung in der Laufzeit mehr erfahren sollen. Deswegen - so lernte ich es eben im Studium mit C++ - wollte ich diese kapseln.
Ich danke euch allen nochmals sehr für eure Hilfsbereitschaft! Das ist wirklich ein tolles Forum!

Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Sonntag 18. November 2012, 10:16
von BlackJack
Bevor man `super()` verwendet, sollte man es IMHO verstanden haben und welche Konsequenzen sich daraus ergeben:
Python's Super is nifty, but you can't use it.
Ich bleibe bei einem einfachen ``Parent.__init__(A, B, C, D)`` und hatte bisher auch noch keinen Fall wo ich die ganze Komplexität von `super()` gebraucht hätte.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Sonntag 18. November 2012, 10:34
von AnyOne
BlackJack hat geschrieben:Bevor man `super()` verwendet, sollte man es IMHO verstanden haben und welche Konsequenzen sich daraus ergeben:
Python's Super is nifty, but you can't use it.
Ich bleibe bei einem einfachen ``Parent.__init__(A, B, C, D)`` und hatte bisher auch noch keinen Fall wo ich die ganze Komplexität von `super()` gebraucht hätte.
Gut, so habe ich es bisher auch immer verwendet und werde dann wohl auch dabei bleiben. Ich möchte mir nicht noch mehr Probleme einfangen..
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Sonntag 18. November 2012, 14:35
von pillmuncher
@BlackJack: Raymond Hettinger findet
super super.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Sonntag 18. November 2012, 15:20
von BlackJack
@pillmuncher: Ja den Artikel kenne ich, bis zu dem hatte ich Hettinger mindestens für einen Halbgott gehalten. Die Idee bei allen Methoden immer auch **kwargs entgegen nehmen zu müssen und alle Methoden fortan nur noch mit Schlüsselwort-Argumenten aufrufen zu müssen, finde ich so alles andere als super. Bei der Adapterklasse habe ich mich dann gefragt ob er auf Drogen ist.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 12:09
von AnyOne
Ich habe meine Skripte jetzt gemäß eurer Anweisungen und Hilfen umgestellt und es funktioniert wunderbar! Vielen Dank für die tollen Erklärungen, das hat mir wirklich weitergeholfen
Eine kleine Frage zu den imports hätte ich noch. In der Art, wie man diese schreibt scheinen die Meinungen stark auseinander zu gehen. Ich importiere das Skript mit den Klassen jetzt wie folgt:
from Classes import ClassA, ClassB, ClassC
Ist das so konform?
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 13:20
von /me
AnyOne hat geschrieben:from Classes import ClassA, ClassB, ClassC
Ist das so konform?
Ich empfinde das nicht als unleserlich oder gar falsch.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 13:53
von AnyOne
/me hat geschrieben:AnyOne hat geschrieben:from Classes import ClassA, ClassB, ClassC
Ist das so konform?
Ich empfinde das nicht als unleserlich oder gar falsch.
Sprich also Ziel von Python ist es, möglichst gut und einfach lesbaren Code zu produzieren?
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 14:17
von derdon
Also wenn das nicht einfach nur ein Beispiel ist, sondern wirklich so in deinem Code steht, ist Classes doch schon ein recht merkwürdiger Name für ein Modul. Es sollte schon etwas aussagen und "da sind Klassen drin" ist keine ausreichende Aussage. Versuche es inhaltlicher, Beispiele findest du in der Standardbibliothek (auch stdlib genannt):
http://docs.python.org/2/library/.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 14:26
von AnyOne
derdon hat geschrieben:Also wenn das nicht einfach nur ein Beispiel ist, sondern wirklich so in deinem Code steht, ist Classes doch schon ein recht merkwürdiger Name für ein Modul. Es sollte schon etwas aussagen und "da sind Klassen drin" ist keine ausreichende Aussage. Versuche es inhaltlicher, Beispiele findest du in der Standardbibliothek (auch stdlib genannt):
http://docs.python.org/2/library/.
Das ist hier nur einfach ein Beispiel

In meinem Code ist die Namensgebung natürlich aussagekräftiger. Hier sollen lediglich der Sinn bzw. meine Gedanken vermittelt werden. Trotzdem danke für den Hinweis

Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 14:36
von /me
AnyOne hat geschrieben:Sprich also Ziel von Python ist es, möglichst gut und einfach lesbaren Code zu produzieren?
"Readability counts."
Hast du schon mal in der Python-Konsole
import this eingetippt? Wenn nicht, dann hol es nach.
Ergänzend dazu findet man es in PEP-8 auch etwas formaler:
Import in PEP-8.
Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 14:45
von AnyOne
/me hat geschrieben:"Readability counts."
Hast du schon mal in der Python-Konsole
import this eingetippt? Wenn nicht, dann hol es nach.
Ergänzend dazu findet man es in PEP-8 auch etwas formaler:
Import in PEP-8.
Danke, wurde direkt nachgeholt

Re: Objektorientierung und Vererbung mit mehreren Skripten
Verfasst: Montag 19. November 2012, 14:56
von BlackJack
Wobei das mit der Lesbarkeit nicht auf Python beschränkt ist. Das sollte eigentlich immer das Ziel vom Programmierer sein, unabhängig von der Programmiersprache. Code Golf und Obfuscation-Wettbewerbe mal ausgenommen.
