décorateur python / descripteur comme staticmethod

voix
0

Donc, être un débutant à Python, je ne comprends pas ce qui se passe ici ...

Je suis en train de définir un décorateur / descripteur, qui a, entre autres, le comportement staticmethod.

Naïvement, a essayé de créer mon décorateur / descripteur qui hérite staticmethod. Cela ne l'a pas ...

Question 1) Pourquoi? Les règles sont différentes ici? Y at - il un moyen d'hériter staticmethod?

Quoi qu'il en soit, après la lecture: https://docs.python.org/3/howto/descriptor.html#id9 , je suis venu avec ceci:

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(...)

L'exécution de cette, cela fonctionne. Excellent.

MAIS

Marques PyCharm my_functioncomme erreur, avec le message suivant:

Méthode doit avoir un premier paramètre, généralement appelé « auto »

Question 2) Ai - je fait quelque chose de mal, ou est le bug de cette PyCharm?

Question 3) Comment puis - je résoudre dans les deux cas?

Merci d'avance!

Créé 19/03/2020 à 21:59
source utilisateur
Dans d'autres langues...                            

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