Python 将模块作为脚本来执行

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

在 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 <arguments>

这时,要解析传递的参数,需要用到 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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一去丶二三里

有收获,再打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值