pyton dekorator / deskryptor jak staticmethod

głosy
0

Tak więc, będąc początkującym Pythonie, nie mogę zrozumieć, co tu się dzieje ...

Próbuję określić dekorator / deskryptor, który ma, między innymi, zachowanie staticmethod.

Naiwnie, próbował stworzyć mój dekorator / deskryptor która dziedziczy staticmethod. Że nie zrobił ...

Pytanie 1) Dlaczego? Są zasady tutaj inaczej? Czy istnieje średnią dziedziczyć staticmethod?

Tak czy inaczej, po czytaniu: https://docs.python.org/3/howto/descriptor.html#id9 , wpadłem na to:

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

Bieganie to, że działa. Doskonały.

ALE

Znaki pycharm my_functionjako błąd, z następującym komunikatem:

Metoda musi mieć pierwszy parametr, zwykle nazywa się „ja”

Pytanie 2) Czy zrobiłem coś złego, czy błąd ten pycharm za?

Pytanie 3) W jaki sposób można rozwiązać w każdym przypadku?

Z góry dziękuję!

Utwórz 19/03/2020 o 21:59
źródło użytkownik
W innych językach...                            

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