safely rename a method with a decorator

Daniel Fetchinson fetchinson at
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?


Psss, psss, put it down! -

More information about the Python-list mailing list