1.必选参数parameter
def detail1(name,age,tel):
print('姓名:',name)
print('年龄:',age)
print('电话:',tel)
detail1('qiye',12,123456)
2.默认参数parameter = value
def detail2(name,age,tel,gender = 'fale'):#默认参数必须放必须参数后面
print('姓名:',name)
print('性别:',gender)
print('姓名:',age)
print('电话:',tel)
detail2('qiye',12,123456,gender = 'female')#实参和形参要对应
3.可变参数*
#1.不定长传参
def fun1(*number):
for i in number:
print(i)
fun1(1,2,3,4,5,6)
#2.元组和列表的压包
def fun2(*number):
s = 0
for i in number:
s += i
print(s)
fun2(*[1,2,3,4,5])
fun2(*(1,2,3,4,5))
4.关键参数**
#使用方法一
def fun(id,name,**kargs):
print('id:',id)
print('name:',name)
print('others:',kargs)
fun(2,'qiye',age = 22,tel = 123456)
#使用方法二
extra = {'sex':'man','age':'18'}
def fun(id,name,**kargs):
print('id:', id)
print('name:', name)
print('others:', kargs)
fun(2,'qiye',sex = extra['sex'],age = extra['age'])
#使用方法三
extra = {'sex':'man','age' : 12}
def fun(id,name,**kargs):
print('id:',id)
print('name:',name)
print('others:',kargs)
fun('1','qiye',**extra)
5.关键字参数*
# 1.命名关键字参数需要一个特殊分隔符*,后面的参数被视为命名关键字参数
# 2.如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要特殊分隔符*了
def fun(name,age,*,city,job,completion):
print('name:',name)
print('age:',age)
print('city:',city)
print('job:',job)
print('completion:',completion)
fun('qiye',22,city = 'shanghai',job = 'teacher',completion = True)
6.参数组合
# 参数定义的顺序必须是:必选参数,默认参数,可变参数,命名关键字参参数和关键字参数
def fun(parameter,*args,keyparameter,**kargs):
print(parameter)
print(args)
print(keyparameter)
print(kargs)
fun(1,*(1,2,3,4),keyparameter=True,kargs = {'id':2})