Programmierstil

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.
Sirius3
User
Beiträge: 10343
Registriert: Sonntag 21. Oktober 2012, 17:20

Dienstag 12. März 2019, 20:29

Die Methoden sind nicht „optional”. Sie werden wie andere Methoden ganz normal vererbt, letztlich von `object`.
Benutzeravatar
sparrow
User
Beiträge: 1315
Registriert: Freitag 17. April 2009, 10:28

Dienstag 12. März 2019, 21:23

Perlchamp hat geschrieben:
Dienstag 12. März 2019, 19:53
... woher soll man das wissen ?
Es steht in der Dokumentation.
Raten hilft da wenig. Die Informationen sind ja da. Man muss sich nur auf die Suche machen.
Benutzeravatar
Perlchamp
User
Beiträge: 151
Registriert: Samstag 15. April 2017, 17:58

Dienstag 12. März 2019, 23:37

@ snafu:
der Satz stammt ja nicht von mir, sondern war ein *Zitat* aus einem Lehrbuch ...

@ sparrow:
ja, klar, danke ... ich lese wohl die falschen Bücher, wie mir scheint ... danke für den Link :-)

@ Sirius3:
Fehler sind menschlich, habe keine Probleme damit ...
Die Methoden sind nicht „optional”. Sie werden wie andere Methoden ganz normal vererbt, letztlich von `object`.
... auf was (das ich geschrieben habe) beziehst du dich da jetzt? Dass Methoden vererbt werden ist mir bewußt, somit sind Methoden nicht optional, sondern nur z.T. deren Argumente/Parameter/Optionen, was aber durch die Klasse bzw. deren Funktionen/Methoden (letztendlich) festgelegt und somit auch vererbt wird. Und dann gibt's da natürlich auch noch sog. Defaultwerte, die auch nicht optional sind, sondern dann 'zum Einsatz kommen', wenn man deren Werte nicht (neu) festlegt oder festlegen muss oder die Argumente/Parameter/Optionen und deren (neuen) Werte nicht explizit aufführt ...
wer lesen kann ist klar im Vorteil ;-)
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
Benutzeravatar
snafu
User
Beiträge: 5902
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 13. März 2019, 00:05

Sirius3 hat geschrieben:
Dienstag 12. März 2019, 20:29
Die Methoden sind nicht „optional”. Sie werden wie andere Methoden ganz normal vererbt, letztlich von `object`.
War vielleicht missverständlich ausgedrückt. Ich wollte sagen, dass nicht jede Klasse __init__() selbst implementieren muss.
Benutzeravatar
Perlchamp
User
Beiträge: 151
Registriert: Samstag 15. April 2017, 17:58

Mittwoch 13. März 2019, 00:13

@ snafu:
Stichwort *statische* Methoden ?
wer lesen kann ist klar im Vorteil ;-)
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
Benutzeravatar
sparrow
User
Beiträge: 1315
Registriert: Freitag 17. April 2009, 10:28

Mittwoch 13. März 2019, 12:33

Perlchamp hat geschrieben:
Mittwoch 13. März 2019, 00:13
Stichwort *statische* Methoden ?
Nein.
Statische Methoden sind Methoden einer Klasse, die ohne deren Instanzierung aufgerufen werden können und/oder sich (eben deshalb) auf die Klasse, nicht auf deren Instanz beziehen.

Ich glaube, es würde dir weiterhelfen, wenn du dir eine weitere Programmiersprache, wie Java, anschauen würdest, die einige Konzepte anders umsetzt.
Im Moment wirkt das, als würdest du von einer Begrifflichkeit zu einer anderen flippern ohne den Kontext dahinter einordnen zu können. Das würde sich dann möglicherweise geben, wenn man das Konzept einmal in einer anderen Sprache gesehen hat und versteht, dass man nicht alles 1:1 auf Python übertragen kann.
Benutzeravatar
snafu
User
Beiträge: 5902
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 13. März 2019, 15:46

Perlchamp hat geschrieben:
Mittwoch 13. März 2019, 00:13
@ snafu:
Stichwort *statische* Methoden ?
Worauf bezieht sich das jetzt? Das zuletzt besprochene Thema hat jedenfalls nichts mit statischen Methoden zu tun.

Statische Methoden kommen halt ohne die Klasseninstanz (d.h. ohne self) aus. Die kann man z.B. nutzen, um zusätzlich zur Signatur der __init__()-Methode etwas Vorarbeit zu leisten. Das ist manchmal einfacher zu handhaben als alle Optionen direkt in die __init__() zu klatschen (wobei das auch Geschmackssache ist). In Python würde man dann auch eher den @classmethod-Dekorator dafür verwenden.

Ich glaube aber, du kannst das alles eh gerade nicht wirklich einordnen. Auch wenn es zum Thread-Thema passt, aber es bringt nicht soviel, wenn du dabei nur Fragezeichen vor Augen hast und alles mögliche durcheinander wirfst...
Benutzeravatar
Perlchamp
User
Beiträge: 151
Registriert: Samstag 15. April 2017, 17:58

Mittwoch 13. März 2019, 18:40

@ sparrow und snafu:
ihr beide habt völlig Recht. Momentan steige ich noch nicht so richtig durch, und es sind eben diese Fragen und Antworten, die mich weiterbringen (um die Begriffe/Dinge besser zuordnen zu können / um den Kontext besser zu verstehen), da mache ich mir keinen Kopf. Mit den Klassen beschäftige ich mich gerade einmal 4 Tage, und das eher nebenbei, da kann ich nicht so viel wissen.
Danke jedenfalls für eure Geduld mit mir. Ich werde mich wohl jetzt auch eher zurücknehmen hier im Forum (ob mir das gelingen wird, weiß ich nicht ;-) ), bis ich 'vernünftige' Fragen stellen kann bzw. mehr Durchblick für irgendwelche 'Einwürfe' habe ...
wer lesen kann ist klar im Vorteil ;-)
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
rasco
User
Beiträge: 4
Registriert: Samstag 1. Dezember 2007, 06:20

Montag 1. April 2019, 20:41

Hallo Perlchamp,
vielleicht hilft Dir dieser Link https://github.com/Dvlv/Tkinter-By-Example bei Deiner Einarbeitung in tkinter weiter.
Antworten