Learn 3: Create Your First Class
1. Variables: Global vs Local Scope
You may have noticed that we declared the relevant sensor instance variables as global within our test functions before using them. e.g.
def test_line_follower( ):
global line_follower
This allows the code within the function to interact safely with the globally scoped sensor instances that we created in the Sensor Setup Code cell.
Any variable that is defined outside of a function definition is said to be globally scoped. Variables that are defined within a function definition are said to be locally scoped (visible to that function only) unless we declare them as global by using the global keyword.
The interaction between local and global variables can become complicated so we're going to take an approach called defensive programming.
Defensive Programming: when you write code that is not really necessary but makes things more obvious to you as the programmer and to the computer too, in order to avoid bugs in the future. It's similar to looking both ways before crossing the street, even if you do not hear any car coming.
As for global and local scope, you can read this external in-depth tutorial if you want to know more about the interaction between the two scopes.