[Python-Dev] update_wrapper should preserve staticmethod behavior
Antoine Pitrou
solipsis at pitrou.net
Wed Jun 11 21:22:49 CEST 2008
Calvin Spealman <ironfroggy <at> socialserve.com> writes:
>
> staticmethod doesn't wrap anything, it just creates a descriptor on
> the class with a __get__ that returns the original, untouched
> callable. Doesn't even care _what_ the thing you use it on is
> (function, other callable, or something else entirely.)
FWIW, I still disagree. Technically, it might not "wrap" anything (in the sense
that it isn't defined as a function returning another function - which is a
narrow definition of a wrapper by the way), but semantically it does. To the
non-expert programmer, it is a decorator like any other one. The fact that it is
implemented differently from other decorators is not an excuse for it to follow
different rules...
Unless, of course, there is a good *semantic* reason for staticmethod not to
mirror the __module__ attribute.
(by the way, does the same apply to classmethod as well?)
Regards
Antoine.
More information about the Python-Dev
mailing list