函数的参数有四种方式,第一种是位置参数,第二种是默认参数,第三种是可变参数,第四种是关键字参数
1、位置参数
位置参数,如add(x,y),x和y就是位置参数,位置参数是必传的,有几个位置参数在调用的时候就要传几个,否则就会报错,那如果有多个位置参数的话,记不住哪个位置传哪个了怎么办,可以使用位置参数的名字来指定调用,比如说上面的那个add函数也可以使用add(y=1,x=2)这样来调用,这种调用方式叫做关键字传参
定义def add(x,y),函数体是
return x + y
print(add(2,3))
会打印出5
2、默认参数
默认参数就是在定义形参的时候,默认参数不是必填的,如果给默认参数传值的话,它就会使用你传入的值,如果使用默认值参数的话,必须放在位置参数后面定义
def hello1(name,sex='男'),sex就是默认参数
定义def hello1(name,sex = '男'),函数体是
print('你的名字是 %s,你的性别是 %s' % (name,sex))
传参时hello1('哈哈')
会打印出你的名字是 哈哈 ,你的性别是男
3、可变参数
可变参数用*args来接收,后面想传多少个参数就传多少个,如果位置参数、默认值参数、可变参数一起使用的的话,可变参数必须在位置参数和默认值参数后面,可变参数也是非必传的,args是一个tuple,args这个名字随便叫,叫别的名字也行
定义def hello2(name,*args),函数体是
print('你的名字是:',name)
print('*args的值是:',args)
传参时hello2('haha',10086,'北京')
会打印出你的名字是: haha *args的值是(10086,'北京') # args是一个tuple
4、关键字参数
关键字参数使用**kwargs来接收,这个名字也不固定,写成**aa也可以,关键字参数也可以和上面的三种一起来使用,如果要一起使用的话,关键字参数必须在最后面,使用关键字参数的话,调用的时候必须使用关键字传参,关键字参数也是非必传的
定义def hello3(name,**kwargs),函数体是
print('你的名字是:',name)
print('**kwargs的值是:',kwargs)
传参时hello3('haha',a = 1, b= 2)
会打印出你的名字是: haha **kwargs的值是{'a':1,'b':2} # kwargs是一个字典