Python 将模块作为脚本来执行

简述

在 Python 中,模块的使用方式有很多种,可以在 Python shell 中使用,也可以将其用于另外一个模块中。虽然形式不同,但本质没什么区别,均属于导入。

除导入之外,还可以将模块作为一个独立的脚本来执行。

| 版权声明:一去、二三里,未经博主允许不得转载。

将模块作为脚本来执行

当使用下述方式运行 Python 模块时:

python script.py

模块中的代码将被执行,就像导入它一样,但 __name__ 将被设置为 __main__

例如,有一个模块 calc.py,里面定义了一个 add() 函数。如果要测试这个函数,可以这样编写:

def add(a, b):
    return a + b

if __name__ == '__main__':
    print('test: 2 + 3 =', add(2, 3))

然后,就可以将其作为一个脚本来执行:

$ python calc.py 
test: 2 + 3 = 5

注意: 代码中的 if 语句很有必要,这样既可以将模块作为独立的脚本运行,又可以将其作为可导入的模块来使用,请参考:Python 中 name == ‘main’ 的作用

命令行参数

倘若参数是可变的,该怎么办?

很简单,命令行传参 - 这是对上述形式的一个扩展:

python script.py

这时,要解析传递的参数,需要用到 sys 模块:

def add(a, b):
    return a + b

if __name__ == '__main__':
    import sys
    args = sys.argv  # 用于获取命令行参数
    print(args)
    print(add(int(args[1]), int(args[2])))

没错,通过 sys.argv 可以获取命令行参数,它是一个 list 类型。sys.argv[0] 表示代码本身文件路径,参数索引从 1 开始。

使用很简单,参数之间以空格隔开:

$ python calc.py 2 3
['calc.py', '2', '3']
5
$ python calc.py 4 5
['calc.py', '4', '5']
9

这样,就可以传递任意的参数了。

你可能感兴趣的:(Python,快速入门)