1. python 中模块的__name__ 属性
python中所有的模块(import 之后的都是模块) 都有一个内置属性 __name__;一个模块的__name__ 取决于怎么来应用它:
- 如果执行这个 *.py 的脚本:则__name__ 默认赋值 "__main__"
import sys dict = {"red":31,"green":32,"yellow":"33","blue":34} def set_color(color,str): num = dict[color] print "%s[%s;2m%s%s[0m" % (chr(27),num,str,chr(27)) #set_color("red","hi,shuming") print __name__ if __name__ == "__main__": set_color(sys.argv[1],sys.argv[2])<pre name="code" class="html">./color.py "yellow" "I am caoshuming" __main__ #__name__ 的值 I am caoshuming #输出结果
- 如果在在其他的脚本中import 这个模块,那这个模块的__name__ 属性的值就是脚本的名称(比如color.py ------>__name__ = color)
#!/usr/bin/python import color print "__name__ = %s" % (color.__name__)
__name__ = color #接口是import 的模块的名字
2. python 脚本中 if __name__ == "__main__" 的作用
- python 脚本中有些命令需要在手动执行时执行,但是在别的脚本import 模块时不执行,这时就用 if __name__ == "__main__" 进行控制;