[Python-Dev] update_wrapper should preserve staticmethod behavior (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Wed Jun 11 21:22:49 CEST 2008


Calvin Spealman <ironfroggy 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