On 28/05/20 12:38 pm, Rob Cliffe wrote:
> why not go
> further (as the OP suggested as far as I recall)
> and allow the more concise
>
> def order(eggs = 4, spam ?= Spam()):
> etc.
That clutters up the header with things that are not part of
the function's signature. All the caller needs to know is that
the spam argument is optional.
(side note - I'm just seeing now how mailman handles inline images, which is very disappointing)
The fact that a new Spam object
is created on each call if he doesn't supply one is an
implementation detail.
I don't think it is - knowing that the default isn't shared across calls could be quite important. But aside from that, there's only one character (`?`) which represents that detail, and that's an acceptable amount of 'clutter'. The rest (`=Spam()`) is just saying what the default value is, and we don't usually consider that clutter.