питон декоратор / Дескриптор как STATICMETHOD

голоса
0

Так, будучи новичком в Python, я не могу понять, что здесь происходит ...

Я пытаюсь определить декоратор / дескриптор, который имеет, помимо всего прочего, поведение staticmethod.

Наивно, пытались создать свой декоратор / дескриптор , который наследуется staticmethod. Это не делали ...

Вопрос 1) Почему? Существуют правила здесь разные? Есть ли средний наследовать staticmethod?

В любом случае, после прочтения: https://docs.python.org/3/howto/descriptor.html#id9 , я пришел с этим:

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

Запуск этого, он работает. Отлично.

НО

Знаки PyCharm my_functionкак ошибки, со следующим сообщением:

Метод должен иметь первый параметр, как правило, называется «я»

Вопрос 2) Я сделал что- то неправильно, или ошибка в этом PyCharm в?

Вопрос 3) Как я могу исправить в любом случае?

Заранее спасибо!

Задан 19/03/2020 в 23:59
источник пользователем
На других языках...                            

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