Das Verhalten des Standardarguments von Python scheint missverstanden und beängstigend zu sein. Seien Sie also vorsichtig.
➜ ~ python
Python 2.7.11 (default, Feb 2 2016, 21:44:54)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def func(arg={}):
... return arg
...
>>> foo = func()
>>> foo['a'] = 'foo'
>>>
>>> bar = func()
>>> bar['b'] = 'bar'
>>> print(foo)
{'a': 'foo', 'b': 'bar'}
>>> print(bar)
{'a': 'foo', 'b': 'bar'}
Das Standardargument wird von Aufrufen gemeinsam genutzt, da es beim Laden des Moduls nur einmal ausgewertet wird. Ich frage mich, warum ich diese Spezifikation gemacht habe ...