safely rename a method with a decorator

Daniel Fetchinson fetchinson at googlemail.com
Sun Mar 22 23:29:14 EDT 2009


> there was discussion related to this same problem earlier in the week.
>
> http://groups.google.com/group/comp.lang.python/browse_thread/thread/ad08eb9eb83a4e61/d1906cbc26e16d15?q=Mangle+function+name+with+decorator%3F
>

Thanks this was very helpful!


>> I'd like to implement a decorator that would rename the method which
>> it decorates. Since it's a tricky thing in general involving all sorts
>> of __magic__ I thought I would ask around first before writing
>> something buggy :)
>>
>> It should work something like this:
>>
>> class myclass( object ):
>>     @rename( 'hello' )
>>     def method( self ):
>>         print 'ok'
>>
>> # tests
>>
>> inst = myclass( )
>> inst.method( )       # raise an AttributeError
>> inst.hello( )           # prints 'ok'
>> myclass.method   # raise an AttributeError
>> myclass.hello       # prints <unbound method myclass.hello>
>> assert 'method' in dir( myclass ) is False
>> assert 'hello' in dir( myclass ) is True
>>
>> Any ideas?
>>
>> Cheers,
>> Daniel


-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown



More information about the Python-list mailing list