[Python-ideas] Documenting Python warts

Antoine Pitrou solipsis at pitrou.net
Wed Jan 2 08:29:01 CET 2013


On Wed, 2 Jan 2013 13:25:35 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> On Wed, Jan 2, 2013 at 1:16 PM, Oleg Broytman <phd at phdru.name> wrote:
> > On Wed, Jan 02, 2013 at 11:07:58AM +1000, Nick Coghlan <ncoghlan at gmail.com> wrote:
> >> Mutable default arguments make perfect sense once you
> >> understand the difference between compile time, definition time and
> >> execution time for a function. Defaults are evaluated at definition
> >> time, thus they are necessarily shared across all invocations of the
> >> function.
> >
> >    I.e., users have to understand the current implementation. Mutable
> > defaults are not a language design choice, they are dictated by the
> > implementation, right?
> 
> No, they're not an implementation accident, they're part of the
> language design. It's OK if you don't like them, but please stop
> claiming they're a CPython implementation artifact.

Let's call them a compromise then, but calling them a language feature
sounds delusional. I can't remember ever taking advantage of the fact
that mutable default arguments are shared accross function invocations.

Regards

Antoine.





More information about the Python-ideas mailing list