@theresaanna FYI:

Parameters are passed by value. The reason people are confused by the behaviour is twofold:

the parameter passed in is actually a reference to a variable (but the reference is passed by value)
some data types are mutable, but others aren't
So:

If you pass a mutable object into a method, the method gets a reference to that same object and you can mutate it to your heart's delight, but if you rebind the reference in the method, the outer scope will know nothing about it, and after you're done, the outer reference will still point at the original object.

If you pass an immutable object to a method, you still can't rebind the outer reference, and you can't even mutate the object.

From: http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference