In a recent comment to an elderly post of mine, I was asked about the following code:
def mywrapper(func, args=(), kwargs={}):
...
The commenter though that I should have made a special mention about using dict as a default argument, “because it’s such a common gotcha.”
My response is twofold:
- This particular case is idiomatic, and widely used for functions that call other functions.
- I actually don’t think mutable default arguments are a problem and that they don’t deserve all the stigma they are getting.
I want to expand on point 2 a bit here.