Python ist im Gegensatz zu Java oder C++ keine Sprache, die für objektorientierte Programmierung entwickelt wurde.
Wenn in Python eine statische Methode aufgerufen wird, schreibt man einfach eine Methode mit regulären Argumenten darin.
class Animal():
def staticMethod():
print "Dies ist eine statische Methode"
Allerdings benötigt eine Objektmethode, die verlangt, dass Sie eine Variable erstellen, die ein Tier ist, in diesem Fall das Argument self
class Animal():
def objectMethod(self):
print "Dies ist eine Objektmethode, die eine Instanz einer Klasse benötigt"
Die self-Methode wird auch verwendet, um auf ein Variablenfeld innerhalb der Klasse zu verweisen.
class Animal():
# animalName im Konstruktor erstellt
def Animal(self):
self.animalName = "";
def getAnimalName(self):
return self.animalName
In diesem Fall bezieht sich self auf die animalName-Variable der gesamten Klasse. MERKE: Wenn du eine Variable innerhalb einer Methode hast, funktioniert self nicht. Diese Variable existiert nur, solange die Methode ausgeführt wird. Um Felder zu definieren (die Variablen der gesamten Klasse), müssen sie AUSSERHALB der Klassenmethoden definiert werden.
Wenn Sie kein Wort von dem verstehen, was ich sage, dann googlen Sie "Objektorientierte Programmierung". Sobald Sie dies verstehen, werden Sie diese Frage nicht einmal stellen müssen :).