On Sun, 19 Dec 2004 20:59:43 +0100, "Fredrik Lundh" <[EMAIL PROTECTED]> wrote:
>Walter S. Leipold wrote: > >> I think that Charlie's point is that, when you use "def <name>", you have >> <name> polluting your namespace. The whole program becomes harder to >> understand because you can't ignore <name> anywhere, even if it was only >> ever intended to be used in one place. > >Ahem. If you name the function, you can reuse the name (or just forget about >it) >as soon as you've used the function object. > >If you don't want to reuse the name because you might want to reuse the >function >object, you have to name it anyway. > Are you forgetting that all bindings are not directly name bindings as created by def? ;-) (See also various tkinter-related uses). >>> funs = [lambda:'one', lambda:'two', lambda:'three'] >>> for use in xrange(2): ... for i in xrange(3): ... print '%susing fun[%s] => %r' %('re'*(use>0), i, funs[i]()) ... using fun[0] => 'one' using fun[1] => 'two' using fun[2] => 'three' reusing fun[0] => 'one' reusing fun[1] => 'two' reusing fun[2] => 'three' Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list