> I've read various portions of the Python 2.5 documentation in an > attempt to figure out exactly what the following condition represents: > > if __name__ == "__main__": > main() > > However, I was not able to determine what it is actually checking for. > Could someone point me in the way of a tutorial or explain this for > me? Thanks.
__name__ is an attribute on a module that shows the standard name for that module: >>> import sys >>> sys.__name__ 'sys' The name stays constant even if you do something funny during import: >>> import os as something_else >>> something_else.__name__ 'os' When using the interpreter or running a python script code will be executed in a standard module called "__main__". >>> __name__ '__main__' In fact, you can even import __main__ if you want: >>> import __main__ >>> __main__.__name__ '__main__' >>> a = 100 >>> __main__.a 100 The common pattern: if __name__ == "__main__": # do stuff IMHO better written: if "__main__" == __name__: # do stuff Allows a module to selectively run code only if it is being run as a program. That code will not run if it is imported as a module, because in that condition __name__ will return the name of the file (sans .py) that the code is in. I've never tried naming a file __main__.py and importing it, my guess is that you shouldn't do that :). Matt -- http://mail.python.org/mailman/listinfo/python-list