diff options
author | Georg Brandl <georg@python.org> | 2007-07-12 09:37:53 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-07-12 09:37:53 +0000 |
commit | 78d59d65c77cc77e4a5f48c866fd82d7557c8986 (patch) | |
tree | 6ced6d65ddb78bf0663041b881d56a10be2fd8db | |
parent | f36e6a1a839531163f18dcecdfd017a33c08eab3 (diff) | |
download | cpython-git-78d59d65c77cc77e4a5f48c866fd82d7557c8986.tar.gz |
Bug #1637365: add subsection about "__name__ == __main__" to the
Python tutorial.
(backport from rev. 56306)
-rw-r--r-- | Doc/tut/tut.tex | 38 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 41 insertions, 0 deletions
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex index 794a5a0086..f41770443d 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}} @@ -77,6 +77,9 @@ Extension Modules Documentation ------------- +- Bug #1637365: add subsection about "__name__ == __main__" to the + Python tutorial. + - Bug #1569057: Document that calling file.next() on a file open for writing has undefined behaviour. Backport of r54712. |