Can anyone explain to me why the two functions below a and b are behaving differently. Function a changes names locally and b changes the actual object.
Where can I find the correct documentation for this behavior?
def a(names):
names = ['Fred', 'George', 'Bill']
def b(names):
names.append('Bill')
first_names = ['Fred', 'George']
print "before calling any function",first_names
a(first_names)
print "after calling a",first_names
b(first_names)
print "after calling b",first_names
Output:
before calling any function ['Fred', 'George']
after calling a ['Fred', 'George']
after calling b ['Fred', 'George', 'Bill']