diff options
author | Georg Brandl <georg@python.org> | 2007-07-12 09:37:49 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-07-12 09:37:49 (GMT) |
commit | 9467bc5ad1e886ecd0be84eddef35153ead936b1 (patch) | |
tree | 959657faf6066aea3cce87d7306d97734ac63c03 /Doc | |
parent | b2e208f9010e4b1abbbd560d3d4a8f66fa5861d6 (diff) | |
download | cpython-9467bc5ad1e886ecd0be84eddef35153ead936b1.zip cpython-9467bc5ad1e886ecd0be84eddef35153ead936b1.tar.gz cpython-9467bc5ad1e886ecd0be84eddef35153ead936b1.tar.bz2 |
Bug #1637365: add subsection about "__name__ == __main__" to the
Python tutorial.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/tut/tut.tex | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex index c3c6bf6..ee3d21c 100644 --- a/Doc/tut/tut.tex +++ b/Doc/tut/tut.tex @@ -2522,6 +2522,44 @@ There is even a variant to import all names that a module defines: This imports all names except those beginning with an underscore (\code{_}). +\subsection{Executing modules as scripts \label{modulesAsScripts}} + +When you run a Python module with + +\begin{verbatim} +python fibo.py <arguments> +\end{verbatim} + +the code in the module will be executed, just as if you imported it, but +with the \code{__name__} set to \code{"__main__"}. That means that by +adding this code at the end of your module: + +\begin{verbatim} +if __name__ == "__main__": + import sys + fib(int(sys.argv[1])) +\end{verbatim} + +you can make the file usable as a script as well as an importable module, +because the code that parses the command line only runs if the module is +executed as the ``main'' file: + +\begin{verbatim} +$ python fibo.py 50 +1 1 2 3 5 8 13 21 34 +\end{verbatim} + +If the module is imported, the code is not run: + +\begin{verbatim} +>>> import fibo +>>> +\end{verbatim} + +This is often used either to provide a convenient user interface to a +module, or for testing purposes (running the module as a script executes +a test suite). + \subsection{The Module Search Path \label{searchPath}} |