On Thu, 29 Jul 2010 07:30:34 +0530, Navkirat Singh wrote: > Hi, > > I had another question: > > What is the scope of a parameter passed to a function? I know its a > very basic question, but I am just sharpening my basics :) > > def func_something(x) > return print(x+1); > > Does x become a local variable or does it stay as a module scoped > variable? > > Though I think its local, but just want to be sure.
Yes, x is local. However, be careful that Python does not make a copy of arguments passed to functions. So the local name refers to the same underlying object as the global name, and *modifications* to the *object* will be seen everywhere. But *reassignments* to the *name* are only seen locally. def test(local_name): print(local_name) local_name = 2 print(local_name) print(global_name) global_name = 1 test(global_name) => prints 1, 2, 1. def test(local_name): print(local_name) local_name.append(2) print(local_name) print(global_name) global_name = [1] test(global_name) => prints [1], [1, 2], [1, 2]. -- Steven -- http://mail.python.org/mailman/listinfo/python-list