Chapter 3. Function Definitions
In this chapter, we'll look at the following recipes:
Designing functions with optional parameters
Using super flexible keyword parameters
Forcing keyword-only arguments with the * separator
Writing explicit types on function parameters
Picking an order for parameters based on partial functions
Writing clear documentation strings with RST markup
Designing recursive functions around Python's stack limits
Writing reusable scripts with the script library switch