Please submit a fix to the issue tracker at bugs.python.org if you care about this. On Wed, Jun 11, 2008 at 7:06 AM, Calvin Spealman <ironfroggy at socialserve.com> wrote: > I'd like to make a claim about the following example, that update_wrapper > should be improved to preserve the behavior of known, built-in decorators. > In this case, I'm talking about staticmethod. The order I list here feels > natural, but it obviously doesn't work. The only reason it doesn't seems to > be that it is trying to decorate the descriptor, not the function itself. > This is expected, but it could certainly be smart enough to detect a > descriptor and attempt to get the actual callable underneath, could it not? > It would not work for all cases, of course. > >>>> def d(f): > ... def nf(*a, **kw): > ... print "decorated function called" > ... return f(*a, **kwargs) > ... functools.update_wrapper(nf, f) > ... return nf > ... >>>> class A(object): > ... @d > ... @staticmethod > ... def a(self): > ... print "a" > ... > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "<stdin>", line 3, in A > File "<stdin>", line 5, in d > File > "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/functools.py", > line 33, in update_wrapper > setattr(wrapper, attr, getattr(wrapped, attr)) > AttributeError: 'staticmethod' object has no attribute '__module__' > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/guido%40python.org > -- --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4