'''列表或元组、字典 转为实参| fun(*lst),fun(**dic) ''' def fun(a,b,c): print('a=',a,'b=',b,'c=',c) fun(10,20,30) #函数调用时的参数传递,称为位置传参 lst=[11,22,33] fun(*lst) # * 函数调用时将列表中每个序列中的元素都转换为位置参数 fun(a=100,b=300,c=200) #函数的调用,所以是关键字实参 dic={'a':111,'b':222,'c':333} fun(**dic) #* 函数调用时将字典中的每个键值对都转换为关键字实参
E:\PycharmProjects\pythonProject\venv\Scripts\python.exe E:/PycharmProjects/pythonProject/demon1/demo29.py a= 10 b= 20 c= 30 a= 11 b= 22 c= 33 a= 100 b= 300 c= 200 a= 111 b= 222 c= 333
# 用*限制传递方式 def fun4(a,b,*,c,d)
'''需求c,d只能采用关键字实参传递,当然啊前面的 a,b 两种都可以用''' def fun4(a,b,*,c,d): #从*之后的参数,在函数调用时,只能采用关键字参数传递 print('a=',a,'b=',b,'c=',c,'d=',d) # fun4(10,20,30,40) #不符合要求,报错 fun4(a=10,b=20,c=30,d=40) #关键字实参传递, 前面 a,b 可以采用两种形式,所以不报错 fun4(10,20,c=30,d=40) #前两个参数,采用的是位置实参传递,而c,d采用的是关键字实参传递
E:\PycharmProjects\pythonProject\venv\Scripts\python.exe E:/PycharmProjects/pythonProject/demon1/demo30.py a= 10 b= 20 c= 30 d= 40 a= 10 b= 20 c= 30 d= 40 进程已结束,退出代码0
#函数定义时的形参的顺序问题
'''函数定义时的形参的顺序问题''' def fun5(a,b,*,c,d,**args): pass def fun6(*args,**args2): pass def fun6(a,b=10,*args,**args2):