From GEOG 485 or similar previous experience, you should be familiar with defining simple functions that take a set of input parameters and potentially return some value. When calling such a function that requires parameters, you have to provide values (or expressions that evaluate to some value) for each of these parameters. These values are then accessible under the names of the respective parameters that makes up the body of the function declaration.
However, from working with different tool functions provided by arcpy or other Python modules, there can also be optional parameters. You can use the names of such parameters to explicitly provide a value for them when calling the function, (also known as named parameters), or include empty values in the position of parameters that you do not want to use and values in the positions that you want to provide (known as positional parameters).
In this section, we will show you how to write functions that take an arbitrary number of required and optional parameters and we will discuss some in more detail about passing different kinds of values as parameters to a function.