statische Klasse in python

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.
Antworten
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

fr3sh hat geschrieben:Ich glaube ich habe mit der Hilfe eines Kollegen eben die gesuchte Lösung gefunden, eine Statische Klasse zu erzeugen. Ich komme aus der C# Ecke und mir sagt die Methode mit dem Modulen nicht wirklich zu.

Gefunden hier: http://stackoverflow.com/questions/5313 ... self-to-it

Beispiel:

Code: Alles auswählen

class Foo(object):
    @staticmethod
    def bar():
        print "Static method called!"
Aufruf wie folgt:

Code: Alles auswählen

Foo.bar()
>> Static method called!
ciao
Was ist dadran eine statische Methode? :-/
BlackJack

@JonasR: `Foo.bar()` ist ganz offensichtlich eine statische Methode.
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Ich hatte jetzt eher eine Erklärung zu statischen Funktion erwartet :D Aber ich glaube ich lese einfach mal die Doku zu @staticmethod
Ich denke bei statisch an etwas unabänderbares ich denke aber ich habe was falschen im Kopf :D

Ich bin halt nicht mit statischen Dingen in Programmiersprachen vertraut.

Edit 1 Mein Sprachstil in dem Post ist ja auch schlecht :D Ich Ich Ich Ich

Edit 2 Wenn ich meine Versuche jetzt richtig interpretiert habe, ist meine Vermutung der nicht änderbaren Funktion ja doch korrekt. Wäre über eine kleine Aufklärung sehr Glücklich. :)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Statisch bedeutet in diesem Kontext, dass du keine Instanz vom Typ "foo" benötigst. Normalerweise würdest du die Methode so aufrufen:

Code: Alles auswählen

foo = Foo()
foo.bar()

#mit
class Foo(object):
    def bar(self):
        pass
Mittels "staticmethod" vereinfacht sich das ganze:

Code: Alles auswählen

Foo.bar()

#mit
class Foo(object):
    def bar():
        pass
An der Signatur von bar kannst du auch erkennen, dass du nun kein Zugriff mehr auf die Instanz hast.
Das Leben ist wie ein Tennisball.
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

EyDu danke für die Erklärung :)
Antworten