Steven D'Aprano <[EMAIL PROTECTED]> wrote: > On Sun, 23 Mar 2008 13:51:34 -0400, Roy Smith wrote: > > > On the other hand, when I do: > > > > def torture(): > > woman.putInChair() > > cushion.poke() > > rack.turn() > > > > I've also done two things. First, I've created a function object (i.e. > > a lambda body), and I've also bound the name torture to that function > > object, in much the same way I did with the list. But, it's different. > > The function object KNOWS that it's name is torture. > > No it does not. Function objects don't know their name. All they know is > that they have a label attached to them that is useful to use as a name > in some contexts, e.g. when printing tracebacks. It's just a label, > nothing more.
I think we're arguing the same thing. When you write def foo(): whatever you create an object which contains the string "foo", retrievable through its __name__ attribute. That's what I meant by "it knows its name" >> What Python give us with lambdas is some half-way thing. It's not a >> full function, so it's something that people use rarely, > > Which people? > > > which means most people (like me) can't remember the exact syntax. > > Speak for yourself, not for "most people". Well, OK. When I said, "most people", I really meant "I know about me, and I'm guessing about other people". I still think it's a fair statement that if you look any large collection of Python code, you will find many more uses of def than of lambda. > > Even when I know > > it's the right thing to be using in a situation, I tend not to use it > > simply because the path of least resistance is to write a one-off > > function vs. looking up the exact syntax for a lambda in the manual. > > lambda arguments : expression > > Why is that harder to remember than this? > > def name ( arguments ) : > block because I remember things I use often, better than I remember things I use infrequently. -- http://mail.python.org/mailman/listinfo/python-list