
-----Original Message----- From: Python-Dev [mailto:python-dev-bounces+anikom15=gmail.com@python.org] On Behalf Of Ben Finney Sent: Saturday, September 21, 2013 12:56 PM To: python-dev@python.org Subject: Re: [Python-Dev] Use an empty def as a lambda
Westley Martínez <anikom15@gmail.com> writes:
My reasoning is that we use class to make classes, lambda to make lambda functions, and def to make--well not defs--functions, which doesn't really make sense to me.
Your reasoning is flawed. There is no such thing in Python as a “lambda function”.
Python has functions. It doesn't matter whether you use a ‘lambda’ or ‘def’ statement to create it, there's no resulting difference in the type of the object. It is a function.
So: you make a class with a ‘class’ statement; you make a function using either a ‘def’ statement or a ‘lambda’ expression. There is no third type of object being discussed here.
This is true. The final object the Python creates is, to my knowledge, the same regardless of whether it uses define or lambda. But it's irrelevant if it's the same or not, since one could argue that every- thing is going to end up as a series of 0s and 1s. In that sense a function is nothing more than a glorified integer. Lambda function is just a term, like method or procedure instead function, although it is certainly more specific in the sense that it is anonymous. In my list I was citing general concepts, not specific Python objects. class is obvious, lambda is obvious, def is not as obvious, though certainly more obvious than C-style declarations. If lambda should change I think anon or expr would be more suitable, or even func (so long as def not become func).