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 True.

Am I understanding this correctly? I hope to understand why an underscore (_) was used as well.

The _ 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")

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()