Checking to see if __name__ == '__main__' is a common idiom to run some code when the file is being called directly, rather than through a module.
In the process of writing a custom command for Django’s manage.py, I found myself needing to use code.InteractiveConsole, which gives the effect to the user of a standard python shell. In some test code I was doing, I found that in the script I’m trying to execute, I get that __name__ is __console__, which caused my code (dependent on __main__) to not run.
I’m fairly certain that I have some things in my original implementation to change, but it got me wondering as to what different things __name__ could be. I couldn’t find any documentation on the possible values, nor what they mean, so that’s how I ended up here.
from the document of class code.InteractiveInterpreter([locals]):
The optional locals argument specifies the dictionary in which code will be executed; it defaults to a newly created dictionary with key
'__name__'set to'__console__'and key'__doc__'set toNone.maybe u can turnning the locals argument, set
__name__with__main__, or change the test clause fromHope it helps.