statische Methode von Klasse aufrufen(class.class.method...)

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
Back2basic
User
Beiträge: 23
Registriert: Montag 23. April 2012, 09:53

moinsen,

mir ist irgendwie nicht ganz klar wieso ich meine Klasse in der die statischen Methoden sind doppelt aufrufen muss damit es funktioniert


Die statische Klasse sieht wie folgt aus

Code: Alles auswählen

class example:
    
    @staticmethod
    def method1(value):
        
        return  "'" + value + "'"

    @staticmethod
    def method2(value):
        
            return  value

    pass
Beim Abrufen muss ich jetzt folgendes schreiben!!

Code: Alles auswählen

example.example.method1()
Kann mir das jemand erklären :-D ??
deets

Na, programmiert einer da eigentlich Java?

Und du rufst auch mit nichten eine Methode *2mal* auf - sondern example.exapmle ist <modul>.<klasse>.

In Python funktionieren Importe anders - um zu erreichen, was du erwartest, musst du

from example import example

machen.


Und noch ein paar Hinweise:

- wenn du wirklich aus der Java-Welt kommst, dann verfall in Python nicht in den Nerv der Java-Welt, dass pro Datei nur eine Klasse definiert wird. In Python gruppieren Module und Packages zueinandergehoerige Funktionalitaet, da kann man ruhig mehrere Klassen in ein Modul packen
- staticmethod ist hoechstwahrscheinlich nicht was du willst, sondern stattdessen classmethod - letzteres bekommt die Klasse als erstes Argument, und das ist dem static aus Java aehnlicher (auch wenn dort das erste Argument, wie das self/this auch, implizit ist)
Back2basic
User
Beiträge: 23
Registriert: Montag 23. April 2012, 09:53

ja ich programmiere überwiegend in Java und vielen Dank für den Tip ;-). Es funktioniert super und deine Ratschläge werde ich beherzigen.
Antworten