Alexey Borzenkov wrote:
> Do you mean something like
>
> class cattrgetter:
> def __init__(self, name):
> self.names = name.split('.')
> def __call__(self, obj):
> for name in self.names:
> obj = getattr(obj, name)
> return obj
I'll raise you one:
def cattrgetter(attr):
return lambda obj: reduce(getattr, attr.split('.'), obj)
py> class A: pass
py> a = A
py> a.b = A
py> a.b.c = "Hey!"
py> cattrgetter('b.c')(a)
'Hey!'
--
Brian Beck
Adventurer of the First Order
--
http://mail.python.org/mailman/listinfo/python-list