wen wrote: > i have written some code in test.py as below: > import __main__ > if __name__!='__main__': > print 1 > > print 2 > > when i run test.py, i got > 2 > on the screen. > > now, i have some question about the code, 1. since no __main__ module at > all, why it's legal to write "import __main__"?
Because a module object is created for the running script. It is placed in sys.modules with the name "__main__". When you "import __main__", the import mechanism looks in sys.modules first for a module with the name "__main__" and uses that if it's there. > 2. since if running a script independently, the __name__ should be > '__main__', why it's not in the above code? It is. However, you wrote "!=" instead of "==". -- Robert Kern [EMAIL PROTECTED] "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list