On Fri, Jul 22, 2016, at 13:51, Guido van Rossum wrote:
Honestly, staticmethod was something of a mistake -- I was trying to do something like Java class methods but once it was released I found what was really needed was classmethod. But it was too late to get rid of staticmethod.
Regardless of its utility or lack thereof for methods, staticmethod seems to me to be the best way to make an attribute of a class that happens to be a function (or, theoretically, some other other descriptor object). I like to think of it as an "implicit-magic remover".
Probably if it didn't exist something like it would have been proposed eventually, under some other name like @funcattr or something.