Stackoverflow question: Is there a built-in identity function in Python?

Paul Moore p.f.moore at gmail.com
Thu Dec 7 14:46:03 EST 2017


On 7 December 2017 at 18:28, Ethan Furman <ethan at stoneleaf.us> wrote:
> The simple answer is No, and all the answers agree on that point.
>
> It does beg the question of what an identity function is, though.
>
> My contention is that an identity function is a do-nothing function that
> simply returns what it was given:
>
> --> identity(1)
> 1
>
> --> identity('spam')
> 'spam'
>
> --> identity('spam', 'eggs', 7)
> ('spam', 'eggs', 7)
>
> Of the five answers to that SO question, mine is the only one that will
> correctly handle those three examples.  If you agree with my contention feel
> free to up-vote my answer.  :)

IMO (as a mathematician ;-)) the identity function is a
*single-argument* function that returns the value passed to it. So:

    def identity(x):
        return x

See https://en.wikipedia.org/wiki/Identity_function

identity(1,2) is an error.

Extending the definition to multiple arguments causes all sorts of
confusion, as you've seen.

Paul



More information about the Python-list mailing list