случае конструкции:
@my_decorator
@staticmethod
def some_func():
…
Получаю:
'staticmethod' object is not callable
Аналогично с 'classmethod'.
После гугления мало что понял, исправил, переставив декораторы местами:
@staticmethod
@my_decorator
def some_func():
…
Подскажите, получается эти декораторы возвращают не функцию (метод)?
Как они вообще работают (не что они делают, это в документации написано)?
Я, так понимаю, они встроены в пайтон, т.е. реализованы на Си, и нужно лезть в исходники, чтобы понять их работу?
Или есть хорошая статья (в основном натыкался на то, что предлагали в декораторе делать dec_func = staticmethod(dec_func), но у меня не все методы с этими декораторами)?
Они вощвращают не функцию, а специальный объект-дескриптор
https://fooobar.com/questions/416363/can-someone-explain-how-the-source-code-of-staticmethod-works-in-python/1859600#1859600
Обсуждают сегодня