Parameters and Arguments
Know
Python passes references to objects. Rebinding a parameter inside a function does not affect the caller, but mutating a mutable argument does.
Apply
Decide for each parameter whether the function may modify it, and document that.
Watch out
Mutating a list argument unintentionally, which changes the caller data invisibly.
Study move
Write one function that fails to change a number and one that changes a list, and explain both.
