python中argv是什么意思,python中*args是什么意思
简单的功能。
首先我们可以定义一个简单的函数,其中只考虑required_arg参数(position参数)。
def exmaple(required_arg):
需要打印_arg
例如(“你好,世界!”)
你好,世界!
那么,如果我们调用一个函数并传入多个位置参数,会发生什么呢?它当然会报错!
例如(“你好,世界!”,‘另一个字符串’)
TypeError: exmaple()恰好接受1个参数(给定2个)
定义函数时使用*arg和**kwarg。
*arg和**kwarg可以帮助我们处理上述情况,允许我们在调用函数时传入多个参数。
def exmaple2(required_arg,*arg,**kwarg):
如果参数:
打印“arg:”,arg
如果夸格:
打印“kwarg:”,kwarg
exmaple2(Hi ,1,2,3,keyword1=bar ,keyword2=foo )
参数:(1,2,3)
kwarg: {keyword2: foo , keyword1: bar}
从上面的例子可以看出,当我引入更多的参数时
*arg会将额外的位置参数转换成元组。
**kwarg会将关键字参数转换成dict。
再比如,没有设置参数个数的加法函数。
def sum(*arg):
res=0
对于参数中的e:
res=e
返回资源
打印总和(1,2,3,4)
打印sum(1,1)
10
2
当然,如果要控制关键字参数,可以单独使用一个*作为特殊分隔符。限于Python 3,在下面的例子中,只有两个关键字参数,参数名为keyword1和keyword2。
定义人员(required_arg,*,关键字1,关键字2):
print(必选参数,关键字1,关键字2)
人(嗨,关键字1=酒吧,关键字2=福)
嗨,酒吧美食
如果不传入参数名keyword1和keyword2,会报错,因为它们会被当作位置参数!
person(Hi , bar , foo )
TypeError: person()采用1个位置参数,但给出了3个
调用函数时使用*arg和**kwarg。
上面的例子和上面的情况很像。逆向思维。
定义总和(a,b,c):
返回一个
a=[1,2,3]
#解包列表a
打印总和(*a)
六
定义总和(a,b,c):
返回一个
a={a: 1, b: 2, c: 3}
#打开字典a
打印总和(**a)
六
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。