DigitalOcean Referral Badge
Udit Vashisht
Author: Udit Vashisht


If __name__ == '__main__' in Python

  • 3 minutes read
  • 647 Views
If __name__ == '__main__' in Python

    Table of Contents

What does if __name__ == ‘__main__‘in python means?

In python, you must have come accross the following code :-

if __name__ == '__main__':
    main()

In this tutorial, we will learn in detail what does the above statement means. As per official documentation:

‘__main__‘ is the name of the scope in which top-level code executes. A module’s __name__ is set equal to ‘__main__‘ when read from standard input, a script, or from an interactive prompt.

It means that if any module/python file is running as the main program, it sets the special__name__ variable to have a value ‘__main__‘

Create a python file ‘module_one.py’ and type the following code:-

# module_one.py

print f'The name of module one is {__name__}' 

If you will run it. You will get the following output:-

The name of module one is __main__

However, if this module is imported in some other file or module, variable __name-- will be set as the name of the first module.

To make it clear, create another python file (module) called ‘module_two.py’ and import first module in it:-

# module_two.py

import module_one

Since, we have imported module_one in module_two.py, when we will run the second module, it will execute the first module and we will get the following output on running module_two.py:-

The name of module one is module_one

Since, now we are directly running module_two.py, Python will set it’s __name__ as ‘__main__‘

# module_two.py

import module_one

print f'The name of module two is {__name__}' 

Output of this module will be:-

The name of module one is module_one
The name of module two is __main__

Hence if __name__ == ‘__main__‘ checks whether the file is being run directly or it has been imported into some other file. The following example will make it more clear:-

# module_one.py

print "This will always be printed"

if __name__ == "__main__": 
    print "Module one has been run directly"
else: 
    print "Module one has been imported"
# Output
This will always be printed
Module one has been run directly

Now if we just import module_one in module_two.py and run it, we will get the following output.

# module_two.py
import module_one
# Output
This will always be printed
Module one has been imported

We use this if we want to make a certain function run, when a module is run directly and some other function to run if it is imported.

If you have any query, please feel free to ask in comment section.


Related Posts

Matplotlib Candlestick Chart in Python | Matplotlib Tutorial | Chapter 11
By Udit Vashisht

How to create a Matplotlib Candlestick Chart in Python?

A candlestick chart or Japanese candlestick chart is a financial chart used to depict the price movement of securities, derivatives etc. in financial market. We can create a Matplotlib Candlestick Chart using a module called mpl_finance, which consists of ...

Read More
Introduction to Python Language - Chapter 1
By Udit Vashisht

Introduction to Python

Curiosity and zeal to learn something new have probably brought you here. It doesn’t matter whether you are new to programming or switching from some other redundant or less useful language, you must be having a few very important questions in your mind. We will be answering ...

Read More
Pie Charts in Python | Matplotlib Tutorial in Python | Chapter 3
By Udit Vashisht

Matplotlib Tutorial in Python

Chapter 3 | Creating Pie Charts in Python

In this chapter, we will learn to create Pie Charts in Matplotlib in Python. Pie Charts are an intiutive way of showing data, wherein each category is shown as a portion of the pie. Let ...

Read More
Search
Tags
tech tutorials automate python beautifulsoup web scrapping webscrapping bs4 Strip Python3 programming Pythonanywhere free Online Hosting hindi til github today i learned Windows Installations Installation Learn Python in Hindi Python Tutorials Beginners macos installation guide linux SaralGyaan Saral Gyaan json in python JSON to CSV Convert json to csv python in hindi convert json csv in python remove background python mini projects background removal remove.bg tweepy Django Django tutorials Django for beginners Django Free tutorials Proxy Models User Models AbstractUser UserModel convert json to csv python json to csv python Variables Python cheats Quick tips == and is f string in python f-strings pep-498 formatting in python python f string smtplib python send email with attachment python send email automated emails python python send email gmail automated email sending passwords secrets environment variables if name == main Matplotlib tutorial Matplotlib lists pandas Scatter Plot Time Series Data Live plots Matplotlib Subplots Matplotlib Candlesticks plots Tutorial Logging unittest testing python test Object Oriented Programming Python OOP Database Database Migration Python 3.8 Walrus Operator Data Analysis Pandas Dataframe Pandas Series Dataframe index pandas index python pandas tutorial python pandas python pandas dataframe python f-strings padding how to flatten a nested json nested json to csv json to csv python pandas Pandas Tutorial insert rows pandas pandas append list line charts line plots in python Django proxy user model django custom user model django user model matplotlib marker size pytplot legends scatter plot python pandas python virtual environment virtualenv venv python python venv virtual environment in python python decorators bioinformatics fastafiles Fasta python list append append raspberry pi editor cron crontab Cowin Cowin api python dictionary Python basics dictionary python list list ios development listview navigationview swiftui ios mvvm swift environmentobject property wrapper @State @Environm popup @State ios15 alert automation instagram instaloader texteditor youtubeshorts textfield multi-line star rating reusable swift selenium selenium driver requests-html youtube youtube shorts python automation python tutorial algo trading nifty 50 nifty50 stock list nifty50 telegram telegram bot dictionary in Python how to learn python learn python