Should Python raise a warning for mutable default arguments?

Emile van Sebille emile at fenx.com
Fri Aug 22 14:14:09 EDT 2008


Steven D'Aprano wrote:
> Sometimes it seems that barely a day goes by without some newbie, or not-
> so-newbie, getting confused by the behaviour of functions with mutable 
> default arguments. No sooner does one thread finally, and painfully, fade 
> away than another one starts up.
> 
> I suggest that Python should raise warnings.RuntimeWarning (or similar?) 
> when a function is defined with a default argument consisting of a list, 
> dict or set. (This is not meant as an exhaustive list of all possible 
> mutable types, but as the most common ones that I expect will trip up 
> newbies.) The warning should refer to the relevant FAQ or section in the 
> docs.
> 
> What do people think?
> 
> 

-1

People that have worked through the tutorial, something everyone should 
do when they're starting out, will find this explicitly discussed.  See

http://docs.python.org/tut/node6.html#SECTION006710000000000000000

People that just skim the surface get stung -- sorry.

Emile




More information about the Python-list mailing list