safely rename a method with a decorator

Daniel Fetchinson fetchinson at googlemail.com
Sun Mar 22 23:45:54 CET 2009


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