Python Main Function with Examples: Understand __main__ (04)

More like this

What is Python Main Function?

PYTHON MAIN FUNCTION is a starting point of any program. When the program is run, the python interpreter runs the code sequentially. Main function is executed only when it is run as a Python program. It will not run the main function if it imported as a module.

To understand this, consider the following code

def main():
     print ("hello world!")
print ("prabashanas")
Python Main Function

Here, we got two pieces of print- one is defined within the main function that is “Hello World” and the other is independent, which is “prabashanas”. When you run the function def main ():

  • Only “prabashanas” prints out
  • and not the code “Hello World.”

It is because we did not declare the call function “if__name__== “__main__”.

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. Consider the following code

def main():
    print("hello world!")

if __name__ == "__main__":
    main()

print("prabashanas")

prabashanas is printed in this case.

Python Main Function

Here is the explanation,

  • 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.

The __name__ variable and Python Module

To understand the importance of __name__ variable, consider the following code:

def main():
    print("hello world!")

if __name__ == "__main__":
    main()

print("prabashanas")

print("Value in built variable name is:  ",__name__)
Python Main Function

Now consider, code is imported as a module

import MainFunction

print("done")
Python Main Function

Here, is the code explanation:

Like C, Python uses == for comparison while = for assignment. Python interpreter uses the main function in two ways

direct run:

  • __name__=__main__
  • if statement == True, and the script in _main_will be executed

import as a module

  • __name__= module’s filename
  • if statement == false, and the script in __main__ will not be executed

When the code is executed, it will check for the module name with “if.” This mechanism ensures, the main function is executed only as direct run not when imported as a module.

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 "prabashanas"

In Python 3, you do not need to use if__name. Following code also works

def main():
  print("Hello World!")
  
main()
print("prabashanas")

Note: Make sure that after defining the main function, you leave some indent and not declare the code right below the def main(): function otherwise, it will give indent error.