Highlights from this chapter include:
- Functions are named blocks of code that perform tasks when called and make programs more organized and optimized.
- Control flow is the sequence of program execution. Control flow moves between calling code and function code when a function is called.
- Variable scope refers to where a variable can be accessed. Global variables can be accessed anywhere in a program. Local variables are limited in scope, such as to a function.
- Parameters are function inputs defined with the function. Arguments are values passed to the function as input by the calling code. Parameters are assigned with the arguments' values.
- Function calls can use positional arguments to map values to parameters in order.
- Function calls can use keyword arguments to map values using parameter names in any order.
- Functions can define default parameter values to allow for optional arguments in function calls.
- Python uses a pass-by-object-reference system to assign parameters with the object values referenced by the arguments.
- Functions can use
returnstatements to return values back to the calling code.
At this point, you should be able to write functions that have any number of parameters and return a value, and programs that call functions using keyword arguments and optional arguments.
| Construct | Description |
|---|---|
| Function definition | def function_name():
"""Docstring"""
# Function body
|
| Parameter | def function_name(parameter_1):
# Function body
|
| Argument | def function_name(parameter_1):
# Function body
function_name(argument_1)
|
| Return statement | def function_name():
# Function body
return result # Returns the value of result to the caller
|
| Variables (scope) | def function_name(parameter_1):
# Function body
local_var = parameter_1 * 5
return local_var
global_var = function_name(arg_1)
|
| Keyword arguments | def function_name(parameter_1, parameter_2):
# Function body
function_name(parameter_2 = 5, parameter_1 = 2)
|
| Default parameter value | def function_name(parameter_1 = 100):
# Function body
|