Seite 1 von 1

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

Verfasst: Freitag 31. August 2012, 10:30
von Back2basic
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 ??

Re: statische Methode von Klasse aufrufen(class.class.method

Verfasst: Freitag 31. August 2012, 10:43
von 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)

Re: statische Methode von Klasse aufrufen(class.class.method

Verfasst: Freitag 31. August 2012, 10:50
von Back2basic
ja ich programmiere überwiegend in Java und vielen Dank für den Tip ;-). Es funktioniert super und deine Ratschläge werde ich beherzigen.