If you are new to Python then you may have noticed
if __name__ == "__main__" line in some python codes.
You may be wondering:
Let me try to explain the above to you.
In Python all modules have some built-in attributes.
__name__ is one of them. Now the question is what does
Well, that depends actually. It depends on how you use the module.
If you run the module directly in a standalone program then in that case the value of
__name__ attribute is set to
For example, create a file
main.py and enter below code.
if __name__ == "__main__": print "Directly called from python interpreter" print "Value of __name__ attribute is "+__name__ else: print "Not directly called" print "Value of __name__ attribute is "+__name__
Now run the above code as below:
$ python main.py
Directly called from Python interpreter Value of __name__ attribute is __main__
Notice that when we ran the program directly from python interpreter the conditional
__name__ == __main__ returned
True and the print statement inside the if block got executed.
If you use the module in another program (using the
import function), then in that case the value of
__name__ attribute is set to the filename of the module.
Let’s try to import the above created
$ python >>> import main.py
Not directly called Value of __name__ attribute is main