On Sat, Dec 14, 2013 at 4:27 AM, Alan Gauld <[email protected]> wrote:
> Sorry, I don't think that is precise. lambda is not the name of the
> function. You can't use lambda to access the function(s) or treat it
> like any other kind of name in Python. In fact if you try to use it as a
> name you'll likely get a syntax error.
>
> lambda is the key word that defines the function. But its no more
> the name of the function than def is.
As Peter stated, Steven is referring to the function's __name__. In
CPython, the name is also set in the code object:
>>> f.__code__.co_name
'<lambda>'
In 3.3, __qualname__ gives the context for a closure:
def f():
return lambda: None
>>> g = f()
>>> g.__qualname__
'f.<locals>.<lambda>'
Of course you can set (but not delete) both attributes:
>>> g.__name__= 'g'
>>> g.__qualname__= 'f.<locals>.g'
>>> g.__name__
'g'
>>> g.__qualname__
'f.<locals>.g'
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor