Ich habe mich jetzt mühselig zu dem Kapitel OOP vorgearbeitet:
Eine simple Frage vorab, um von vorne herein jedes Missverständnis zu beseitigen.
Muss jede Methode einer Klasse mit dem Parameter self anfangen?
Bitte erspart euch Verlinkungen und Kommentare ejder Art.
Ein einfaches JA oder NEIN genügt mir hier. Dann kann von mir aus geschlossen werden.
MfG,
Mr.Wolna
Klassen und ihre Methoden
Nein - Aber genau diese Antwort wird Dich nicht weiterbringen, wenn Du nicht das Konzept verstanden hast. Darf man - ganz zaghaft - fragen, wo das Problem liegt? Vielleicht kann man Dir doch mit etwas mehr Detail weiterhelfen?Mr.Wolna hat geschrieben:Ein einfaches JA oder NEIN genügt mir hier. Dann kann von mir aus geschlossen werden.
Gruß,
Christian
Mehr wollte ich nicht Wissen. Danke schön!
Nun kann ich von vorne herein Fehler vermeiden.
MFG
edit zu dem edits:
Es ist nichts spezielles, ich will einfach von vorne RICHTIG an die Sache herangehen. Wie gesagt ich beschäftige mich mit OOP bzw. Klassen erst seit Heute. Als wie ist es, es muss immer erst ein Parameter self stehen?= Der kann dann aber auch andere Namen haben? Oder wie darf ich das verstehen?
Nun kann ich von vorne herein Fehler vermeiden.
MFG
edit zu dem edits:
Es ist nichts spezielles, ich will einfach von vorne RICHTIG an die Sache herangehen. Wie gesagt ich beschäftige mich mit OOP bzw. Klassen erst seit Heute. Als wie ist es, es muss immer erst ein Parameter self stehen?= Der kann dann aber auch andere Namen haben? Oder wie darf ich das verstehen?
Zuletzt geändert von Mr.Wolna am Donnerstag 18. Februar 2010, 16:57, insgesamt 1-mal geändert.
Jein.
Eine normale Methode muss einen Parameter definieren, der das Objekt selbst annimmt (dieser Parameter wird per Konvention `self`genannt, man muss ihn aber nicht so nennen. `self` ist kein Keyword. Es ist allerdings selten eine gute Idee diese Konvention zu brechen).
Es gibt statische Methoden (`@staticmethod`), wo ein Parameter dieser Art nicht erwartet wird.
Schließlich gibt es da noch die `@classmethod`
In den meisten Fällen suchst du eine Methode mit `self`.
Eine normale Methode muss einen Parameter definieren, der das Objekt selbst annimmt (dieser Parameter wird per Konvention `self`genannt, man muss ihn aber nicht so nennen. `self` ist kein Keyword. Es ist allerdings selten eine gute Idee diese Konvention zu brechen).
Es gibt statische Methoden (`@staticmethod`), wo ein Parameter dieser Art nicht erwartet wird.
Schließlich gibt es da noch die `@classmethod`
In den meisten Fällen suchst du eine Methode mit `self`.
Also mal alles zusammengefasst:
Es sit eigentlich ÜBLICH und IN DEN MEISTEN FÄLLEN, das self benutzen wird. Self an sich ist aber kein KEYWORD, sprich kann im Namen variieren. Es gehört aber... sagen wir mal zu guter akkurater Programmierschule und hat sich durchgesetzt, self zu nehmen. Stimmt das soweit?
Edit: Ehm, Mit @ habe ich schon mal zu tun gehabt, in Ruby. Dachte das ist das selbe wie SELF, bloß halt eben in Ruby. Also gibt es das @ auch in Python? Und wird es genauso verwendet?
Es sit eigentlich ÜBLICH und IN DEN MEISTEN FÄLLEN, das self benutzen wird. Self an sich ist aber kein KEYWORD, sprich kann im Namen variieren. Es gehört aber... sagen wir mal zu guter akkurater Programmierschule und hat sich durchgesetzt, self zu nehmen. Stimmt das soweit?
Edit: Ehm, Mit @ habe ich schon mal zu tun gehabt, in Ruby. Dachte das ist das selbe wie SELF, bloß halt eben in Ruby. Also gibt es das @ auch in Python? Und wird es genauso verwendet?
@ ist dazu da, Funktionen "einzupacken", siehe auch Decorators.