In our previous Python tutorial, we have explained about *Args and **Kwargs in Python. In this tutorial, we will explain about __name__
in Python.
We mostly see the __name__
variable liek below code when gone through the Python code. This is a special variable in Python that used to create modules.
if __name__ == '__main__': main()
When we run Python script, the __name__
variable is always equals __main__
for that script.
So question arises, why and when we need to use this special variable in our code. Sometimes we write a script with functions that might be useful in other scripts as well. In Python, we can import that script as a module in another script.
With __name__
special variable, we can decide whether we want to run the script or want to import the functions defined in the script.
So let’s the scenarios of using the __name__
variable in our code:
Scenario 1: Execude If __name__ Equals __main__
Here we have Python script script_1.py
and define functions and caling within __name__
condition.
script_1.py:
def some_fun(): print("I am handling a lot of functions!!!") def main(): some_fun() if __name__ == '__main__': main()
When run above code, the __name__
variable is set to __main__
. It is checking for __main__
in if condition. The if condition will be true here, the main()
and then some_fun()
statements will be called and print message .
Scenario 2: Importing Script AS Module
If we want to re-use some_fun()
in another script, for example script_2.py
, we can import script_1.py
as a module.
script_2.py:
import script_1 as scr scr.some_fun()
Here we have two scope. In script_2.py
, the __name__
variable is set to __main__
. We have imported script_1.py
as module and called some_fun()
from module. When we run the above code, the def statement for main()
and some_fun()
will be run. But the condition will evaluate to false and main is not called.
As we have called some_fun()
in script_2.py
which output script_1.py
because it is known to that function when the function was defined.
Conclusion
In this tutorial, we have explained how you can use the __name__
variable in different scenarios to write code. Hope you have enjoyed this tutorial and try same at your end. Cheers!