pitón decorador / descriptor como métodoestático

votos
0

Por lo tanto, ser un principiante a Python, no puedo entender lo que está pasando aquí ...

Estoy tratando de definir un decorador / descriptor, que tiene, entre otras cosas, el comportamiento de staticmethod.

Ingenuamente, tratado de crear mi decorador / descriptor que hereda staticmethod. Que no hizo ...

Pregunta 1) ¿Por qué? Son las reglas aquí diferente? ¿Hay una media de heredar staticmethod?

De todas formas, después de leer: https://docs.python.org/3/howto/descriptor.html#id9 , me encontré con esto:

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

La ejecución de este, funciona. Excelente.

PERO

PyCharm marcas my_functioncomo el error, con el siguiente mensaje:

Método debe tener un primer parámetro, generalmente se llama 'yo'

Pregunta 2) ¿He hecho algo mal, o es fallo de este PyCharm?

Pregunta 3) ¿Cómo puedo arreglar en cualquier caso?

¡Gracias por adelantado!

Publicado el 19/03/2020 a las 21:59
fuente por usuario
En otros idiomas...                            

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