模块的__name__
模块的__name__
http://old.sebug.net/paper/python/ch08s04.html#using
每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。
使用模块的__name__
#!/usr/bin/python
# Filename: using_name.pyif __name__ == '__main__':    print 'This program is being run by itself'else:    print 'I am being imported from another module'
(源文件:code/using_name.py)
输出
$ python using_name.py
This program is being run by itself
$ python
>>> import using_name
I am being imported from another module
>>>
它如何工作
每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。
#!/usr/bin/python # Filename: mymodule.py def sayhi(): print 'Hi, this is ', __name__ ,' speaking.' version = '0.1' # End of mymodule.py
# -*- coding:gb2312 -*- #!/usr/bin/python # Filename: mymodule_demo2.py from mymodule import sayhi, version # Alternative: # from mymodule import * sayhi() print 'Version', version

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号