Python private Methode Aufruf
-
Hallo,
was hab ich hier vergessen ?
class hallo(object): @staticmethod def fun1(): self.fun2("Hallo") def fun2(self,string): print string hallo.fun1()
NameError: global name 'self' is not defined
ist es möglich fun2 dort irgendwie aufzurufen ? self gibt es ja scheinbar nicht da die statische Methode darauf keinen Zugriff hat.
-
Natürlich kannst du eine Methode, die auf ein Objekt operiert, nicht ohne ein Objekt aufrufen. Mensch blurry, lies doch mal ein Buch und lern die Basics.
-
ja aber schau mal Zeile 4 . Wie wuerde das dann ausschauen ??
-
class hallo(object): @staticmethod def fun1(): hallo.fun2("Hallo") @staticmethod def fun2(string): print string hallo.fun1()
-
jetzt hast du ja beide Methoden statisch gemacht. Das will ich ja eben nicht.
Oder geht es anders nicht ? Man kann scheinbar nur auf statische Sachen in einer statischen Methoden zugreifen ? Am besten ich lager die Methode dann aus der Klasse aus oder ?
-
ob eine Funktion, die nicht auf die Spezifika von Objekten einer Klasse zugreift, besser als statische Methode oder als Funktion realisiert wird, hängt davon ab, was du machen willst. Ist manchmal auch Geschmackssache.
-
blurry333 schrieb:
Man kann scheinbar nur auf statische Sachen in einer statischen Methoden zugreifen ?
Ja. Was du wüsstest, wenn du ein dummes Grundlagen-Buch lesen würdest.
Am besten ich lager die Methode dann aus der Klasse aus oder ?
https://julien.danjou.info/blog/2013/guide-python-static-class-abstract-methods würde dir vielleicht helfen, wenn du ein richtiger Junge und keine sprechende, postende Holzmarionette wärst.
-
Wenn du fun2() aufrufen willst, dann erstelle zuerst eine Instanz von der Klasse hallo.
-
Oh, ich habe Zeile 4 übersehen. Beitrag kann gelöscht werden.