/  Technology   /  What is if __name__ == “__main__” In Python
python

What is if __name__ == “__main__” In Python

There is truly nice use case for the __name__ variable, regardless you need a file that can be run as the main program or imported by different modules. We can utilize an if __name__ == “__main__” block to allow or prevent parts of code from being run when the modules are imported.

 

At the point when the Python interpreter reads a file, the __name__ variable is set as __main__ if the module being run, or as the module’s name if it is imported.

 

Consider the below code understand better and name it as my_module.py.

 

# file my_module.py

x = 100

def hello():
  print("i am from my_module.py")

if __name__ == "__main__":
   print("Executing as main program")
   print("Value of __name__ is: ", __name__)
   hello()

 

To execute this module as main program by giving below code.

 

python my_module.py

 

Output:

 

Executing as main program
Value of __name__ is: __main__
i am from my_module.py

 

Here we created a new module and executed it as main program hence the value of __name__ is set to ‘__main__’. Hence, the if condition is satisfied and the function hello() gets called.

Now create a new file called module.py and use the below code:

 

import my_module 

print(my_module.x)
my_module.hello() 

print(my_module.__name__)

 

Output:

 

100
i am from my_module.py
my_module

 

As you can see the result, the if statement in my_module failed to execute because the value of __name__ is set to ‘my_module’.

Leave a comment