Input parameters
At the beginning of this chapter, we saw that a function can take input parameters. Before we delve into all possible type of parameters, let's make sure you have a clear understanding of what passing a parameter to a function means. There are three key points to keep in mind:
- Argument passing is nothing more than assigning an object to a local variable name
- Assigning an object to an argument name inside a function doesn't affect the caller
- Changing a mutable object argument in a function affects the caller
Let's look at an example for each of these points.
Argument passing
Take a look at the following code. We declare a name, x
, in the global scope, then we declare a function, func(y)
, and finally we call it, passing x
:
# key.points.argument.passing.py x = 3
def func(y): print(y) func(x) # prints: 3
When func
is called with x
, within its local scope, a name, y
, is created, and it's pointed to the same object x
is pointing to. This is better clarified by the following figure...