Consider our words.py
module. It contains the following global names:
main
- bound bydef main()
sys
- bound byimport sys
__name__
- provided by the Python runtimeurlopen
- bound by fromurllib.request import urlopen
fetch_words
- bound bydef fetch_words()
print_items
- bound bydef 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 innerfo
r-loopline_words
- bound by assignmentline
- bound by the outerfor
-loopstory_words
- bound by assignmenturl
- bound by the formal function argumentstory
- 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...