#1.位置参数,即按位置一个个对应传参
#def calc(a,b,c):
# print(a*a+2*b+c)
#print(calc(3,5,8))
#2.关键字参数 指定定向赋值
#def calc(a,b,c):
# print(a*a+2*b+c)
#print(calc(b=3,c=5,a=8))
#3.位置参数和关键字参数混搭传参 且关键字传参一定要在位置传参之后即先位置后关键字
#def calc(a,b,c):
# print(a*a+2*b+c)
#print(calc(1,2,c=3))
#4.强制关键词参数创建函数框里的*后面全部必须是关键字参数
# calc(*,a,b,c):
# print(a*a+2*b+c)
#print(calc(a=1,b=2,c=3))
#5.默认参数,先非默认参数再默认参数
#def calc(a,b,c=3):
# print(a*a+2*b+c)
#print(calc(1,2))
#6.可变参数(位置)*在变量前面是代表可变,无限的意思;除此之外是开包破开的意思;
#def hello(msg,*names):#此时是可变,无限的意识
# print(*names,msg)#此时是破开的意思 因为*name传进去的是一个元祖
#hello('hi','张三','王五')
#7.可变参数(关键词)
#def hello(msg,**names):#此时代表关键词可变参数
# print('老大是', names['boss1'],msg)
# print('老二是', names['boss2'],msg)
#hello('hi',boss1='张三',boss2='王五',guard='赵四')
#8进一步混搭
#顺序必须是:必选参数、默认参数、可变位置参数、命名关键字参和可变关键字参数
#def f(a,b,c,d,*args,e,f,**kwargs):
# print(a,b,c,d,e,f)
# print(args)
# print(kwargs)
#f(1,2,3,4,5,99,e=6,f=7,x=8,y=9,z=10)
#9强制位置参数
#/之前一定必须位置参数
#def f(a,b,/,c,d,*,e,f,**kwargs):
# print(a,b,c,d,e,f)
#f(3,4,5,6,e=7,f=8,z=9,w=10)
#10开包序列和元组(实际一样,因为元组就是规定好了的序列)
#def f(msg,*names):
# print(msg,*names)
#names_param=['张三','李四','王五']
#f('新年好',*names_param)
#11开包字典
#def f(msg,**names):
# print('老大是',names['BOSS'],msg)
# print('老二是', names['BOSS2'], msg)
#data={'BOSS':'张三','BOSS2':'李四','Guard':'王五'}
#f('新年好',**data)#因为字典本身的意义就是关键字查找,所以在函数定义时需要传参时两个*就代表是关键字参数,这样更容易理解开包字典的用法
来源:CSDN
作者:CH3C00H
链接:https://blog.csdn.net/CH3C00H/article/details/104202673