Я работаю с Python некоторое время, и я нахожу синтаксис для объявления методов как статических, чтобы быть своеобразным.
Будет объявлен обычный метод:
def mymethod(self, params)
...
return
Объявлен статический метод:
def mystaticethod(params)
...
return
mystaticmethod = staticmethod(mystaticmethod)
Если вы не добавляете статическую линию метода, компилятор жалуется на отсутствие себя.
Это очень сложный способ сделать что-то очень простое, что на других языках просто используйте ключевое слово и грамматику декларации. Может ли кто-нибудь рассказать мне об эволюции этого синтаксиса? Это просто потому, что классы добавлены в существующий язык?
Так как я могу перемещать линию staticmethod позже в классе, это также предполагает, что синтаксический анализатор работает с избытком при бухгалтерии.
Обратите внимание, что я знаю о синтаксисе декоратора, который был добавлен позже, мне интересно узнать, как появился оригинальный синтаксис с точки зрения дизайна языка. Единственное, о чем я могу думать, это то, что приложение staticmethod вызывает операцию, которая преобразует объект функции в статический метод.