0
点赞
收藏
分享

微信扫一扫

python函数参数问题


sys.argv是传递给python脚本的命令行参数【字符串】列表
argv[0]为该脚本自身路径,其余为命令行参数

当args与位置参数和默认参数混用的情况下:(注意三者的顺序)

示例一、(三者顺序是:位置参数、默认参数、*args

def foo(x,y=1,*args):
pass
foo (1,2,3,4,5)
# 其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)

示例二、(三者顺序是:位置参数、*args、默认参数

def foo(x,*args,y=1):
pass
foo (1,2,3,4,5)
#其中的x为1,2,3,4,5都给args,即args=(2,3,4,5),y始终为1

​**kwargs​​:(表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)

关于​​**kwargs​​​与​​位置参数、*args、默认参数​​混着用的问题:(注意顺序)

​位置参数、*args、**kwargs​​​三者的顺序必须是​​位置参数、*args、**kwargs​​,不然就会报错:

示例:

def foo(x,*args,**kwargs):
pass
foo (1,2,3,4,y=5,a=6,b=7)

其中的x为1,2,3,4都给args,即args=(3,4,5),y=5,a=6,b=7以字典形式传给kwargs,即kwargs={‘y’:5,‘a’:6,‘b’:7}


举报

相关推荐

0 条评论