[issue32070] Clarify the behavior of the staticmethod builtin

Raymond Hettinger report at bugs.python.org
Sun Nov 19 12:13:33 EST 2017


Raymond Hettinger <raymond.hettinger at gmail.com> added the comment:

ISTM the current wording is correct and aims to describe how staticmethods differ from regular methods.   With a regular methods we have "c.m(*a) -> type(c).m(c, *a)" and "C.m(*a) -> C.m(*s)".  With a class method, only the first of those changes to "c.m(*a) -> type(c).m(*a)". Expressed in English, this change is "the instance is ignored except for its class...".

That said, the staticmethod() docs could use a complete rewrite.  They amble all over the place and don't directly speak to what a static method is for (attaching regular functions to classes to improve findability) or how they work (use descriptor logic to suppress the usual behavior of prepend "self" to the argument list when called from an instance) or a concise motivating example.

----------
nosy: +rhettinger

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32070>
_______________________________________


More information about the Python-bugs-list mailing list