Hi all

I have often read about the gotcha regarding 'mutable default arguments' 
that frequently trips people up.

I use them from time to time, but I have never had a problem. I have just 
delved a bit deeper to see if I am skating on thin ice.

AFAICT my usage is safe. If I use a list as an argument, I only use it to 
pass values *into* the function, but I never modify the list. So if I omit 
the argument, the original default empty list is used, otherwise the list 
that I pass in is used.

However, every time I look at my own code, and I see   "def x(y, z=[]): 
....."   it looks wrong because I have been conditioned to think of it as a 
gotcha.

Would it be more pythonic to change them all to use the alternative 
"z=None", or is it ok to leave it as it is? Or to phrase it differently, how 
would an experienced pythonista react on seeing this when reviewing my code?

Thanks

Frank Millman



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

Reply via email to