Using default a empty dictionary as a default value

Peter Hansen peter at engcorp.com
Tue Mar 22 07:22:42 EST 2005


C Gillespie wrote:
> Dear All,
> I ran my code through pylint to clean it up and one of the (many) errors it
> through up was
> Dangerous default value {} as argument
> Bascially, I have:
> 
> class NewClass:
>     def __init__(self,  myDict={}):
>         for key, value in myDict:
>             print key, value
> 
> Obviously, this is not the way it should be done. Should I have a default
> value of None for myDict and test for it? Or is there some other way?

If you *know* you will not be modifying the contents
of myDict, and you *know* you will not be modifying
the function in the future to do so, then it's
completely safe as written...



More information about the Python-list mailing list