[Python-ideas] @setattr(obj, [name])

George Sakkis george.sakkis at gmail.com
Sun Jun 6 14:30:11 CEST 2010


It would be nice if setattr() was extended to allow usage as a decorator:

class Foo(object):
    pass

@setattr(Foo)
def bar(self):
    print 'bar'

@setattr(Foo, 'baz')
def get_baz(self):
    print 'baz'

>>> Foo().bar()
bar
>>> Foo().baz()
baz

Here's a pure Python implementation:

_setattr = setattr
def setattr(obj, *args):
    if len(args) >= 2:
        return _setattr(obj, *args)
    return lambda f: _setattr(obj, args[0] if args else f.__name__, f) or f

Thoughts ?

George



More information about the Python-ideas mailing list