New submission from Thomas Dimson <[EMAIL PROTECTED]>: Having a peculiar issue (exception raised despite being valid) when defining a decorator that takes a class method as a callback. Here is a cooked example:
def decorator( callback ): def inner(func): def application( *args, **kwargs ): callback(*args,**kwargs) func(*args,**kwargs) return application return inner class DecorateMe: @decorator( callback=DecorateMe.callback ) def youBet( self ): pass def callback( self ): print "Hello!" >>> DecorateMe().youBet() Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> DecorateMe().youBet() File "C:\Python25\badpython.py", line 4, in application callback(*args,**kwargs) TypeError: unbound method callback() must be called with DecorateMe instance as first argument (got DecorateMe instance instead) If you change the line "callback=DecorateMe.callback" to "callback=lambda x: DecorateMe.callback(x)" python gives you: >>> DecorateMe().youBet() Hello! Mysteriously, I did encounter this during my coding with a non-cooked decorator. ---------- components: None messages: 64830 nosy: tdimson severity: normal status: open title: Invalid TypeError with class method decorator and class method parameter type: behavior versions: Python 2.4, Python 2.5 __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2533> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com