In Ruby können Sie das tun:
%Vor%Wie kann das in Python gemacht werden? Ich brauche eine Methode einer Klasse, die aufgerufen werden soll, ohne dass eine Instanz der Klasse aufgerufen wird. Wenn ich das versuche, bekomme ich diesen Fehler:
%Vor%Das habe ich versucht:
%Vor% Sie suchen nach dem staticmethod
Dekorator, mit dem Sie Methoden erstellen können, die kein erstes implizites Argument benötigen. Es kann so verwendet werden:
Wenn Sie andererseits von der Methode aus auf die Klasse (nicht die Instanz) zugreifen möchten, können Sie den classmethod
decorator verwenden, der meistens auf die gleiche Weise verwendet wird:
Was noch aufgerufen werden kann, ohne das Objekt zu instanziieren ( A.a()
).
Dafür gibt es zwei Möglichkeiten:
%Vor%Der Unterschied ist, dass eine statische Methode überhaupt keine impliziten Parameter hat. Eine Klassenmethode erhält die aufgerufene Klasse genau so, wie eine normale Methode die Instanz empfängt.
Welche Sie verwenden, hängt davon ab, ob die Methode Zugriff auf die Klasse haben soll oder nicht.
Einer kann ohne eine Instanz aufgerufen werden.