Python decorator / Deskriptor wie static

stimmen
0

Also, ein Anfänger zu Python zu sein, kann ich nicht verstehen, was hier vor sich geht ...

Ich versuche , einen Dekorateur / Descriptor zu definieren, die unter anderem hat, das Verhalten staticmethod.

Naiv, versuchte , meinen Dekorateur / Deskriptor, inherits zu erstellen staticmethod. Das hat nicht ...

Frage 1) Warum? Sind die Regeln hier anders? Gibt es ein Mittel zu vererben staticmethod?

Wie auch immer, nach der Lektüre: https://docs.python.org/3/howto/descriptor.html#id9 , kam ich mit auf den Punkt :

class my_descriptor(object):
    def __init__(self, f):
        self._f = staticmethod(f)

    def __get__(self, obj, obj_type=None):
        res = self._f.__get__(obj, obj_type)()

        # HERE I DO MY STUFF...

        return res


class MyClass:
    @my_descriptor
    def my_function():
        return MyObject(...)

Das Ausführen dieser, es funktioniert. Ausgezeichnet.

ABER

PyCharm Markierungen my_functionals Fehler, mit der folgenden Meldung:

Verfahren muss einen ersten Parameter, in der Regel ‚Selbst‘ genannt

Frage 2) Habe ich etwas falsch gemacht, oder ist das PyCharm Bug?

Frage 3) Wie kann ich in jedem Fall beheben?

Danke im Voraus!

Veröffentlicht am 19/03/2020 um 21:59
quelle vom benutzer
In anderen Sprachen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more