函数传参用法

百般思念 提交于 2020-02-07 02:09:04

#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)#因为字典本身的意义就是关键字查找,所以在函数定义时需要传参时两个*就代表是关键字参数,这样更容易理解开包字典的用法
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!