On 20/11/2015 12:12, Ned Batchelder wrote:
On Friday, November 20, 2015 at 6:59:54 AM UTC-5, BartC wrote:
On 20/11/2015 01:05, Steven D'Aprano wrote:
On Fri, 20 Nov 2015 04:30 am, BartC wrote:

On 19/11/2015 16:01, Steven D'Aprano wrote:
[...]

The whole concept of 'mutable' default is alien to me. A default is just
a convenient device to avoid having to write:

     fn(0) or fn("") or fn([])

Says who?

People who want to avoid having to write:

       fn(0) or fn("") or fn([])

I think we all understand by now that you are unhappy with what happens
in Python with mutable defaults.  We get it.  You are not alone. Lots of
people are surprised by this.  But it is how Python works.

I'm not sure what your goal is at this point.  Are you:

   1) still unsure what the behavior is, or
   2) trying to understand why it behaves that way, or
   3) hoping to change Python, or
   4) trying to convince us that your language is better, or
   5) something else?

Mostly 5. (With a bit of 4. However that language is not something I'm selling or pushing. It's just something different used as a contrast.).

What's bothering me is:

* The large amount of mumbo-jumbo used to describe what's going on

* The insistence (I think largely from Steven) that the way this feature works is good rather than bad

* The refusal to acknowledge that the def fn(a=[]) syntax is misleading. (What value will a have when you call fn()? The true answer is that you can't tell.)

* The persistent nonsense that somehow [] is mutable (what happens is that [] is assigned to a variable, and /that/ is mutable) (And I will probably get some flak now because 'assign' and 'variable' are meaningless in Python!)

* And above, where I lay out /why/ people want to use the feature, so that the function can take care of some details, even that is refuted.

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

Reply via email to