Scopes and name resolution
Do you remember when we talked about scopes and namespaces in the first chapter? We're going to expand on that concept now. Finally, we can talk about functions and this will make everything easier to understand. Let's start with a very simple example.
def my_function(): test = 1 # this is defined in the local scope of the function print('my_function:', test) test = 0 # this is defined in the global scope my_function() print('global:', test)
I have defined the name
test in two different places in the previous example. It is actually in two different scopes. One is the global scope (
test = 0), and the other is the local scope of the function
test = 1). If you execute the code, you'll see this: ...