__name__ (special variable) in Python

File handling | Python Methods and Functions

Consider two separate files File1 and File2.

# File1.py


print " File1 __name__ =% s " % __ name__


if __ name__ = = "__ main__" :

print "File1 is being run directly"

else :

print "File1 is being imported"  

# File2.py


import File1


print "File2 __name__ =% s" % __ name__


if __ name__ = = " __ main__ " :

print "File2 is being run directly"

else :

  print " File2 is being imported "

 Now the interpreter is given the command to run File1.py.  python File1.py Output:  File1 __name__ = __main__ File1 is being run directly And then File2.py is run.  python File2.py Output:  File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly 

As shown above, when File1.py is run directly, the interpreter installs the __name__ variable as __main__, and when it is run through File2.py by import, the __name__ variable is set as the name of the python script i.e. File1. Thus, we can say that if __name__ == "__main__" — it is the part of the program that is run when the script is run from the command line with a command such as python File1.py.

This article is provided by Harshit Agrawal . If you are as Python.Engineering and would like to contribute, you can also write an article using contribute.python.engineering or by posting an article contribute @ python.engineering. See my article appearing on the Python.Engineering homepage and help other geeks.

Please post comments if you find anything wrong or if you'd like to share more information on the topic discussed above.