scope of function parameters

Terry Reedy tjreedy at udel.edu
Sun May 29 18:20:30 EDT 2011


On 5/29/2011 4:19 PM, Henry Olders wrote:

> From my perspective, a function parameter should be considered as
> having been assigned (although the exact assignment will not be known
> until runtime), and as an assigned variable, it should be considered
> local.

That is exactly the case for Python functions.

 >>> def f(a,b):
	c,d = 3,4
	print(locals())

 >>> f.__code__.co_varnames # local names
('a', 'b', 'c', 'd')
 >>> f(1,2)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}

The requirement for a function call is that all parameters get an 
assignment and that all args are used in assignments (either directly by 
position or keyname or as part of a *args or **kwds assignment).

-- 
Terry Jan Reedy




More information about the Python-list mailing list