When the interpreter reads a python script file, it does two things:
(1) set some special variable.
(2) it executes all the code from 1st line of that script file.
__name__ (2 underscores before and after) is a special python variable.
we can import this script as a module.
and also execute this script directly that the interpreter will assign the hard-coded string "__main__"
to the __name__
variable
# foo.py
# I am using python 3.4
print ("Befor foo function.") def foo(): print ("foo function.") print ("After foo function.")
if __name__ == "__main__": foo()
if we run it with
$ python foo.py
then the result is :
Befor foo function.
After foo function.
foo function.
and if we import it, then run $ python hello.py
# hello.py
import foo
the running result is:
Befor foo function.
After foo function.