Scopes in action

Consider our words.py module. It contains the following global names:

  • main - bound by def main()
  • sys - bound by import sys
  • __name__ - provided by the Python runtime
  • urlopen - bound by from urllib.request import urlopen
  • fetch_words - bound by def fetch_words()
  • print_items - bound by def print_items()

Module scope name bindings are typically introduced by import statements and function or class definitions. It is possible to use other objects at module scope, and this is typically used for constants, although it can also be used for variables.

Within the fetch_words() function we have the six local names:

  • word - bound by the inner for-loop
  • line_words - bound by assignment
  • line - bound by the outer for-loop
  • story_words - bound by assignment
  • url - bound by the formal function argument
  • story - bound by the with-statement

Each of these bindings is brought into existence at first use and continues to live within the function scope until the function completes, at which point the references will be destroyed.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset