6.1.1. 以脚本的方式执行模块

当你用下面方式运行一个Python模块:

  1. python fibo.py <arguments>

模块里的代码会被执行,就好像你导入了模块一样,但是 __name__ 被赋值为 "__main__"。 这意味着通过在你的模块末尾添加这些代码:

  1. if __name__ == "__main__":
  2. import sys
  3. fib(int(sys.argv[1]))

你既可以把这个文件当作脚本又可当作一个可调入的模块来使用, 因为那段解析命令行的代码只有在当模块是以“main”文件的方式执行的时候才会运行:

  1. $ python fibo.py 50
  2. 0 1 1 2 3 5 8 13 21 34

如果模块是被导入的,那些代码是不运行的:

  1. >>> import fibo
  2. >>>

这经常用于为模块提供一个方便的用户接口,或用于测试(以脚本的方式运行模块从而执行一些测试套件)。