Python Argument Passing
Python passes object references to functions. A function can mutate a passed mutable object, but rebinding its local parameter does not change the caller’s variable binding.
Object references, rebinding, and mutation when values are passed to functions.