模块的__name__

模块的__name__

http://old.sebug.net/paper/python/ch08s04.html#using

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。

使用模块的__name__

例8.2 使用模块的__name__

#!/usr/bin/python
# Filename: using_name.py


if __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

 

posted @ 2018-01-17 15:29  sky20080101  阅读(103)  评论(0)    收藏  举报