Python's lambda with underscore for an argument?
What does the following code do?
a = lambda _:True
From what I read and tested in the interactive prompt, it seems to be a function that returns always
Am I understanding this correctly? I hope to understand why an underscore (
_) was used as well.
_ is variable name. Try it. (This variable name is usually a name for an ignored variable. A placeholder so to speak.)
>>> l = lambda _: True >>> l() <lambda>() missing 1 required positional argument: '_' >>> l("foo") True
So this lambda does require one argument. If you want a lambda with no argument that always returns
True, do this:
>>> m = lambda: True >>> m() True