2010-11-30 21 views
1

Ich wollte einen Python-Decorator erstellen, der eine bestimmte Aufgabe ausführt, aber auch, was @staticmethod tut. Ich habe dies erreicht, aber mit PyDev, sagt es mir, dass die Verwendung falsch ist, weil die Methode nicht den Parameter selbst hat.Pydev zeigt Fehler für @staticmethod Reimplementation an

Meine vereinfachte Implementierung ist unten:

class Service(object): 

    def __init__(self, f): 
     self.f = f 

    def __get__(self, obj, objtype=None): 
     return self.f 

und die Nutzung ist:

class Environment: 

    @Service 
    def getConfig(input): 
     return 50 

Wenn ich dieses Python-Programm laufen, alles gut läuft, aber PyDev denkt, dass es ein Fehler ist. Gibt es eine einfache Möglichkeit, die Überprüfung auf diese Art von Fehler in Pydev zu deaktivieren, während der Rest der Funktionalität vorhanden ist?

+1

Sie könnten auch zwei Dekoratoren verwenden - @staticmethod und @Service verketten (was dann wahrscheinlich auch eine Funktion sein könnte). Persönlich denke ich auch, dass ein Dekorateur die Benennungskonvention Methode/Funktion/Modul verwenden sollte; "Service" statt "Service". (Bedenken Sie, dass 'staticmethod' eine Klasse ist.) –

Antwort

1

Wie üblich, gefunden, bevor jemand antworten konnte.

Aber wenn jemand in der Zukunft wissen will:

Fenster> Einstellungen> Pydev> Editor> Code-Analyse> Andere

Dieses Fenster ist selbsterklärend.