Merge: #15104: improve the discussion of __main__.
This commit is contained in:
commit
94255f3a80
|
@ -5,13 +5,19 @@
|
|||
.. module:: __main__
|
||||
:synopsis: The environment where the top-level script is run.
|
||||
|
||||
'__main__' is the name of the scope in which top-level code executes.
|
||||
A module's __name__ is set equal to '__main__' when read from
|
||||
standard input, a script, or from an interactive prompt.
|
||||
|
||||
This module represents the (otherwise anonymous) scope in which the
|
||||
interpreter's main program executes --- commands read either from standard
|
||||
input, from a script file, or from an interactive prompt. It is this
|
||||
environment in which the idiomatic "conditional script" stanza causes a script
|
||||
to run::
|
||||
A module can discover whether or not it is running in the main scope by
|
||||
checking its own __name__, which allows a common idiom for conditionally
|
||||
executing code in a module when it is run as a script or with `python
|
||||
-m` but not when it is imported:
|
||||
|
||||
if __name__ == "__main__":
|
||||
# execute only if run as a script
|
||||
main()
|
||||
|
||||
For a package, the same effect can be achieved by including a
|
||||
__main__.py module, the contents of which will be executed when the
|
||||
module is run with -m.
|
||||
|
|
Loading…
Reference in New Issue