Search
 
SCRIPT & CODE EXAMPLE
 

PYTHON

python function __name__

# An introduction to the _ _name_ _ variable and its usage in Python
# You’ve most likely seen the __name__ variable when you’ve gone through Python code. Below you see an example code snippet of how it may look:

if __name__ == '__main__':    main()

#### Why is the _ _name_ _ variable used? ####

# The __name__ variable (two underscores before and after) is a special Python variable. It gets its value depending on how we execute the containing script.
# Sometimes you write a script with functions that might be useful in other scripts as well. In Python, you can import that script as a module in another script.
# Thanks to this special variable, you can decide whether you want to run the script. Or that you want to import the functions defined in the script.
# What values can the __name__ variable contain?
# When you run your script, the __name__ variable equals __main__. When you import the containing script, it will contain the name of the script.
# Let us take a look at these two use cases and describe the process with two illustrations.

#### Scenario 1 - Run the script ####

# Suppose we wrote the script nameScript.py as follows:

def myFunction():    print 'The value of __name__ is ' + __name__
def main():    myFunction()
if __name__ == '__main__':    main()
# If you run nameScript.py, the process below is followed.
## Scope: Set__name__to'__main__' => Run def statements for main and myFunction => Condition with __name__ evaluates to true => Execute main() => Execute myFunction() =>>>> 'The value of __name is __main'
# Before all other code is run, the __name__ variable is set to __main__. After that, the main and myFunction def statements are run. Because the condition evaluates to true, the main function is called. This, in turn, calls myFunction. This prints out the value of __main__.

#### Scenario 2 - Import the script in another script ####

# If we want to re-use myFunction in another script, for example importingScript.py, we can import nameScript.py as a module.
# The code in importingScript.py could be as follows:

import nameScript as ns
ns.myFunction()

# We then have two scopes: one of importingScript and the second scope of nameScript. In the illustration, you’ll see how it differs from the first use case.
# In importingScript.py the __name__ variable is set to __main__. By importing nameScript, Python starts looking for a file by adding .py to the module name. It then runs the code contained in the imported file.
# But this time it is set to nameScript. Again the def statements for main and myFunction are run. But, now the condition evaluates to false and main is not called.
# In importingScript.py we call myFunction which outputs nameScript. NameScript is known to myFunction when that function was defined.
# If you would print __name__ in the importingScript, this would output __main__. The reason for this is that Python uses the value known in the scope of importingScript.
Comment

PREVIOUS NEXT
Code Example
Python :: sys.argv python example 
Python :: indefinite loops 
Python :: conda 
Python :: python program to find sum of array elements 
Python :: Python simple number formatting samples 
Python :: Python - How To Pad String With Spaces 
Python :: tkinter hide legend 
Python :: tadjust margines automatically matplotlib 
Python :: locate certificate path python 
Python :: convert from R to python 
Python :: python string: index error 
Python :: py 2 exe 
Python :: python hlaf of list 
Python :: delete everything from list that matches string 
Python :: transpose([[1],[2],[3]]) 
Python :: initials of name 
Python :: nltk python text from url 
Python :: #Combine two sets on python with for loop 
Python :: Python | Pandas MultiIndex.is_lexsorted() 
Python :: how to get random images frrom quotefancy python 
Python :: multiple channel creating command in discord.py 
Python :: fetch the appropriate version based on chrome python 
Python :: image processing for GC 
Python :: const in python 3 
Python :: How to get the positions where values of two columns match? 
Python :: shorthand python if 
Python :: python add new line from textarea 
Python :: Pte or Pvt 
Python :: response object has no code 
Python :: c++ to python online converter 
ADD CONTENT
Topic
Content
Source link
Name
6+7 =