There is a syntactic sugar for item access in dictionaries and sequences: o[e] = v <-> o.__setitem__(e, v) o[e] <-> o.__getitem__(e)
where e is an expression. There is no similar way for set/get attribute for objects. If e is a given name, then o.e = v <-> o.__setattr__(e, v) o.e <-> o.__getattr__(e) Anybody thought about this issue? We could write something like this: o.[e] = v o.[e] or o.(e) = v o.(e) in this case. For example: setattr(self, method_name, getattr(self.metadata, method_name)) --> self.(method_name) = self.metadata.(method_name) setattr(command_obj, neg_opt[option], not strtobool(value)) --> command_obj.(neg_opt[option]) = not strtobool(value) setattr(self, '%s_open' % type, lambda r, proxy=url, type=type, meth=self.proxy_open: meth(r, proxy, type)) --> self.('%s_open' % type) = lambda r, proxy=url, type=type, meth=self.proxy_open: meth(r, proxy, type) -- http://mail.python.org/mailman/listinfo/python-list