sys为python的内置模块,提供了很多函数和变量来处理Python运行时环境的不同部分。 argv为“参数变量”,是一个参数列表,且第一个参数为脚本名称。 sys.argv为sys模块的参数变量,同样可以视为参数列表,通过sys.argv[ ]来提取。sys.argv[0]表示参数列表中的第一个参数,即脚本本身名称;sys.argv[1]表示第二参数,如下图3,对应ex14.py,a,b,c中的第二参数,a. 以《笨办法学Python》中的例子来说明两者的作用与区别:
两者所实现的结果一样,都将命令行输入参数转为输出。 只是from sys import argv可以通过a,b,c,d……=argv来进行批量参数赋值,将argv中的参数依次赋值给左边的变量。 而import sys去只能通过a=sys.argv[]这样来逐个赋值。 两者的另一个区别在于命令行参数的输入上: 使用from sys import argv语句,则输入参数的数量必须与a,b,c,d……=argv中赋值的变量数量相同,否则会报错; 而import sys则不会,哪怕输入数量大于所读取的数量也无所谓,sys.argv[ ]只会按位读取。 至于为什么会有这样的差别,或许就是因为sys.argv[ ]的按位读取吧。 待更新…… |