Explain about Python main function and its uses

Python is one of the most popular and best-used programming languages to learn. It supports various applications to run in different Operating Systems. Python main function is the starting point for any program execution. In Python programming, the main function helps to start the execution of the program when it starts directly. Moreover, it doesn’t get executed while imported as a module.

The function is usually known as main() and it includes a specific return type and arguments according to the standard language. Besides, the Python interpreter executes code scripts beginning at the top of the file. Thus, there is no specific function that Python runs automatically.

Let’s get started with the Python main function article. Here, we will try to understand what is the Python main function and it uses widely.

What is the Python main function?

Most programming languages include a special function executed automatically each time the program runs. In Python, there are three different types of functions available. Such as; Built-in functions, anonymous functions & user-defined functions. But the Python main function or main() as it is usually denoted is unlike others. Moreover, this function essentially serves as a start point for the execution of any program. As it is the starting point of the program, it is not required for the user to define the Python main function every time the program runs or starts.

If you are interested To Learn Python you can enroll for free live demo Python Online Training

The basic syntax or script for the Python main function is defined as follows;


print(“__name__ value: “, __name__)

def main():

print(“python main function”)

if __name__ == ‘__main__’:


While executing a python program, the python interpreter starts the execution of code inside it. Besides, it also sets a few implicit variable values. One of these variables is __name__ whose value is set as __main__.

In the case of Python main function, we have to define a function first. Then we can use if __name__ == ‘__main__’ condition to execute the same.

In case, the Python source file is imported as a module, then the Python interpreter sets the __name__ value to the module name. So, the (if) condition will return false and Python main function method will not execute.

Thus, Python provides us the flexibility to give any name for the main method. But it’s the best practice to name it as the main() method only.


It’s not compulsory to have a Main Function within Python. However, we can see the above example includes a function main(). The function is followed by a conditional statement ‘if’ that checks the value of __name__. And compares it with the string “__main__“. After verifying it to True, it executes main().

And while executing the same, it prints “Hello, World!” as output.

The above kind of code pattern is very commonly used while dealing with files to be executed as Python syntax/scripts, and / or to be imported in other modules.

Python main function with arguments

There are different types of function arguments available in Python such as;

  • Required arguments
  • Keyword arguments
  • Default arguments
  • Variable-length arguments

Here, we are going to discuss the Python main function arguments. One of the most popular use cases of Python application is providing the parameters. Generally, we need to read the parameters given by the user and take action according to those parameters.

import sys

def main(argv=None):

print(“I am the MAIN and you chose”)


if __name__ == “__main__”:


Similarly, when we execute it, we will get the following result.

$ python3 mymain.py “This is parameter”

We can see that the name of the application and given text is mentioned as a parameter in a list format. Thus, we can easily select parameters with list indexing like below syntax example.

param1 = sys.argv[1]

Python main function return value

For example, a return statement is followed by an expression list. Then that expression list is assessed and the value is returned as follows:

>>> def greater_than_1(n):

… return n > 1

>>> print(greater_than_1(1))


>>> print(greater_than_1(2))


If there is no expression list specified, then (None) is returned. The syntax follows:

>>> def no_expression_list():

… return # No return expression list.

>>> print(no_expression_list())


A single function may include many return statements. Moreover, the functions execution ends when one of the following return statements is reached. Such as:

>>> def multiple_returns(n):

… if(n):

… return “First Return Statement”

… else:

… return “Second Return Statement”

>>> print(multiple_returns(True))

First Return Statement

>>> print(multiple_returns(False))

Second Return Statement

Run the Python file as a Module

To run a Python file as a module, we have to import the same into another Python program. Let’s understand with an example.

Let us assume that we have a Python file main.py in the same directory as the heloworld.py file. It includes the following code:

import helloworld

When we run this file, we will have the following result in output:


Thus, we can see that importing a Python file module also runs all the code within the module file. But, here we can see that in the place of visualizing __main__, the program displays the module name such as helloworld.

Under the context of running a Python file as a module, the module name is assigned to the __name__ variable itself.

Creating a Python main function having the code to be run

Here, we will explore the different ways how to execute a Python code. We will also know why and when to use the main() function. Let’s apply it. Have a look at the below written code:

print(“n Main Function Demo n”)

def demo(got):

print(“…Beginning Game Of Thrones…n”)

new_got = str.split(got)

print(“…Game of Thrones has finished…n”)

return new_got

def main():

got= “n Bran Stark wins the Iron Throne n”


new_got = demo(got)


if __name__ == “__main__”:


The above example, we have used the definition of main(), that contains the program logic actually to run. Here, we have also defined a function called ‘demo’, to include the written code that can be reused as and when required. Moreover, we have modified the conditional block so that it executes main() function.

Call Other Functions from main ()

This is a common practice in Python that is main() execute other functions also, rather than including the task-finishing code in function main(). This is mainly useful when we compose the overall task from various smaller sub-tasks that can execute independently.

For example, we have a script that performs the following things:

  1. It reads a data file from the source that may be a database, a web API or a file on the disk.
  2. Processes the data after reading
  3. Writes the above-processed data on other location

If we deploy each of the above sub-tasks in separate functions, then it will be easy for us or any other user to reuse a few of the steps. The rest of them can ignore if they don’t want to. Later, we can design a default workflow in the main(), and we can have the best of both scenarios.


Thus, you came across the Python main function and its uses throughout the article. I hope you got the basic idea of this function. But there is more to learn which is possible through Python Online Training. This training may help you to know about Python and its various functions, uses and many more in-depth.