http://effbot.org/zone/default-values.htm
…when you use a “mutable” object as a default value; that is, a value that can be modified in place, like a list or a dictionary.
An example:
>>> def function(data=[]):
... data.append(1)
... return data
...
>>> function()
[1]
>>> function()
[1, 1]
>>> function()
[1, 1, 1]