Why is the empty dictionary a dangerous default value in Python? [duplicate]
Let’s look at an example: def f(value, key, hash={}): hash[value] = key return hash print(f(‘a’, 1)) print(f(‘b’, 2)) Which you probably expect to output: {‘a’: 1} {‘b’: 2} But actually outputs: {‘a’: 1} {‘a’: 1, ‘b’: 2}