> > I have never used a call to "locals()" in my code. Can you show me a > > use case where it is valuable and Pythonic? > > def print_item(item): > description = textwrap.fill(item.description, 40) > short = item.description.split('\n', 1)[0] > code = str(item.id).zfill(6) > print "%(code)s %(short)s\n%(description)s\n" % locals()
I see the use of that, but according to Zen, "Explicit is better than implicit." > > Transferring arguments: > > def foo(some, long, list, of, arguments): > additional = 5 > return other(**locals()) > Why not?: def foo(**kwargs): kwargs["additional"] = 5 return other(**kwargs) > Defining properties: > > class ColourThing(object): > �...@apply > def rgb(): > def fset(self, rgb): > self.r, self.g, self.b = rgb > def fget(self): > return (self.r, self.g, self.b) > return property(**locals()) > So really it's just a short hand. But it's against the Zen! Explicit not Implicit! I'm not convinced....then again, I didn't look at the source code of the standard libraries. ~Sean -- http://mail.python.org/mailman/listinfo/python-list