python dekoratőr / leíró mint staticmethod

szavazat
0

Tehát, hogy egy kezdő Python, nem értem, mi folyik itt ...

Próbálom meghatározni dekoratőr / leíró, amely többek között a viselkedése staticmethod.

Naiv módon megpróbált létrehozni én dekoratőr / leíró amely örökli staticmethod. Ez nem csinál ...

1. kérdés) Miért? A szabályokat itt más? Van jelenti, hogy örökli staticmethod?

Egyébként, olvasás után: https://docs.python.org/3/howto/descriptor.html#id9 , kitaláltam ezt:

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

Futó ezt, működik. Kiváló.

DE

PyCharm jelek my_function, mint hiba, a következő üzenettel:

Módszer kell egy első paraméter, általában az úgynevezett „én”

2. kérdés) Tettem valamit rosszul, vagy ez PyCharm a hibát?

3. kérdés) Hogyan tudom kijavítani mindkét esetben?

Előre is köszönöm!

A kérdést 19/03/2020 21:59
a forrás felhasználó
Más nyelveken...                            

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