Commit 9467bc5a authored by Georg Brandl's avatar Georg Brandl

Bug #1637365: add subsection about "__name__ == __main__" to the

Python tutorial.
parent b2e208f9
......@@ -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}}
......
......@@ -851,6 +851,9 @@ Tools
Documentation
-------------
- Bug #1637365: add subsection about "__name__ == __main__" to the
Python tutorial.
- Patch #1698768: updated the "using Python on the Mac" intro.
- Bug #1569057: Document that calling file.next() when the file is open for
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment