What Does if name == "main" do in Python?
if __name__ == "main" is a guarding block that is used to contain the code that should only run went the file in which this block is defined is run as a script. What it means is that if you run the file as a script the `__name__
variable will be equal to'main'`.
Let’s look at an example:
mylib.py: def say_hi(): print('hi from the function') if __name__ == 'main': print('the main block is being executed') say_hi()
In the example above, we have defined a
say_hi function that will simply say hi when called. Then there is a guarded block with the
if __name__ == 'main': statement.
If you run the script in the console lie this:
The output will be the following:
Output: the main block is being executed hi from the function
But if you include the
mylib.py file in some other python file and run that file as a script, you will see that the guarded block will not be executed.
other.py: import say_hi from mylib say_hi()
Output: hi from the function
Scaling Python Applications
Learn everything you need to know about building, deploying and scaling python applications in production.Guides
Python on Ubuntu
Here is how to install Python on Ubuntu 20.04 in under two minutes: Step 1 - Update the package list on your system The first step is to update the package list on your system before proceeding to ...Guides
What does the "yield" keyword do in Python?
To better understand what yield does, you need first to understand what generator and iterable are. What is iterable When you use a list or list-like structure, you can read the values from the lis...Questions
Task scheduling in Python
Learn how to create and monitor Python scheduled tasks in a production environmentGuides
We are hiring.
Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.
Help us in making the internet more reliable.
Help us with developer education and get paid.
Reliability is the
Delightful observability tools that turn your logs & monitoring into a secret weapon for shipping better software faster.Explore Better Stack