(Sponsors) Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
What is if __name__ == "__main__" ??
Updated on Jan 07, 2020
Every module in Python has a special attribute called __name__
. The value of __name__
attribute is set to '__main__'
when module run as main program. Otherwise, the value of __name__
is set to contain the name of the module.
Consider the following code for better understanding.
1 2 3 4 5 6 7 8 9 10 11 | # file my_module.py
foo = 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()
|
Here we have defined a new module my_module
. We can execute this module as main program by entering the following code:
python my_module.py
Expected Output:
1 2 3 | Executing as main program
Value of __name__ is: __main__
i am from my_module.py
|
Here we are creating a new module and executing it as main program so the value of __name__
is set to '__main__'
. As a result, the if condition satisfies and the function hello()
gets called.
Now create a new file called module.py
and write the following code:
1 2 3 4 5 6 | import my_module
print(my_module.foo)
my_module.hello()
print(my_module.__name__)
|
Expected Output:
1 2 3 | 100
i am from my_module.py
my_module
|
As you can see now, the if statement in my_module
fails to execute because the value of __name__
is set to 'my_module'
.
Other Tutorials (Sponsors)
This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
View Comments