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