On 20/11/2015 12:28, Marko Rauhamaa wrote:
BartC <b...@freeuk.com>:

We're arguing at cross-purposes then since you are obviously
interested in these esoteric aspects,

The Ackermann function really is an esoteric example, but the other
example that has been discussed here can make practical use of the
default-value semantics:

And you go on to give a couple of slightly less esoteric examples! (I don't think I've ever written a lambda function in my life.)

Even more appropriately, you may expressly want a mutable, singleton
object to be the default:

    def initiate_query(query, database=global_database):

Finally, a down-to-earth example. Here it probably doesn't matter at what point 'global_database' gets bound. You know it will always refer to the current state of global_database, and you know that it is a data structure external to the function even if it is updated from inside.

That is a bit different from an empty list that later is not empty.

    def asklist(caption, data, n=omitted, rows=omitted, width=omitted,
                flags=omitted, buttons=omitted, tablist=omitted,
                heading=omitted):

but that would be rather pedantic in most circumstances.

Yes, that's along the lines of what I used do before I had proper default values!

Then I had code inside the function to test a parameter and set it as needed. I still do this when the default isn't straightforward (where it depends on other parameters for example).

--
Bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to