Writing pure functions
A pure function has no side effects: there are no global changes to variables. If we avoid the global
statement, we will almost meet this threshold. We also need to avoid changing the state mutable objects. We'll look at a number of ways of ensuring these two aspects of pure functions. A reference to a value in the Python global using a free variable is something we can rework into a proper parameter. In most cases, it's quite easy.
Here is an example where the usage of the global statement is explained:
def some_function(a, b, t): return a+b*t+global_adjustment
We can refactor this function to make the global_adjustment
variable into a proper parameter. We would need to change each reference to this function, which might have a large ripple effect through a complex application. A global reference will be visible as a free variable in the body of a function. There will be neither a parameter nor an assignment for this variable, making it reasonably clear...