函数-参数
形参
只有在被调用的时候分配内存单元,调用结束释放。因此,形参只在函数内部有效。
实参
实际参数,可以是常量,变量,表达式,函数等,无论类型,在进行函数调用时,他们都必须有确定的值,以便将值传递给形参。
默认参数
不给该参数传值,也有自己的值 ,默认参数必须放形参后面
位置参数
按顺序的参数
关键参数
在调用的时候指定参数名,关键参数必须放位置参数之后
非固定参数
形参*args可以接收任意个数的参数,打包成一个元组传入。非固定参数会必须放形参后面,关键字参数可以
def send_msg(msg,*args): print(msg,args) #第一种传值方式: send_msg('message','user1','user2','user3') #第二种传值方式: send_msg('message',*('user1','user2','user3')) send_msg('message',*['user1','user2','user3'])
形参**kwargs,只接收未定义的关键字参数
def send_msg(msg,**args): print(msg,args) #传值方式,未定义的关键参数: send_msg('message',phone='123456',wx='wxinfo')
一次性传入一个字典
def send_msg(msg,**args): print(msg,args) #当直接传入整个字典的时候,需要在前面加上** info={'phone':'13987656879','wx':'123.com'} send_msg('message',**info)
同时传入列表和字典
def send_msg(msg,*args,**kwargs): print(msg,args,kwargs) #同时传入列表和字典 info={'phone':'13987656879','wx':'123.com'} send_msg('message',*(1,2,3,4),**info)