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?
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.) –