Python Main Function with Examples: Understand __main__
Before we jump more into Python coding, we get familiarize with Python Main function and its importance.
Consider the following code
def main():
print "hello world!"
print "Girish"
Here we got two pieces of print one is defined within a main function that is "Hello World" and the other
is independent which is "Girish". When you run the function def main ():
- Only "Girish" prints out
- and not the code "Hello World."
It is because we did not declare the call function "if__name__== "__main__".
- When Python interpreter reads a source file, it will execute all the code found in it.
- When Python runs the "source file" as the main program, it sets the special variable (__name__) to have a value ("__main__").
- When you execute the main function, it will then read the "if" statement and checks whether __name__ does equal to __main__.
- In Python "if__name__== "__main__" allows you to run the Python files either as reusable modules or standalone programs.
Like C, Python uses == for comparison while = for assignment. Python interpreter uses the main function in two ways
-
import: __name__= module's filename
if statement==false, and the script in __main__ will not be executed
-
direct run:__name__=__main__
if statement == True, and the script in _main_will be executed
- So when the code is executed, it will check for module name with "if."
It is important that after defining the main function, you call the code by if__name__== "__main__" and then run the code, only then you will get the output "hello world!" in the programming console as shown below.
Note: Make sure that after defining a main function, you leave some indent and not declare the code right below the def main(): function otherwise it will give indent error.
def main():
print("Hello World!")
if __name__== "__main__":
main()
print("Girish")
Above examples are Python 3 codes, if you want to use Python 2, please consider following code
def main():
print "Hello World!"
if __name__== "__main__":
main()
print "Girish"
In Python 3, you do not need to use if__name. Following code also works
def main():
print("Hello World!")
main()
print("Girish")