函数-参数

形参

只有在被调用的时候分配内存单元,调用结束释放。因此,形参只在函数内部有效。

实参

实际参数,可以是常量,变量,表达式,函数等,无论类型,在进行函数调用时,他们都必须有确定的值,以便将值传递给形参。

默认参数

不给该参数传值,也有自己的值 ,默认参数必须放形参后面

位置参数

按顺序的参数

关键参数

在调用的时候指定参数名,关键参数必须放位置参数之后

非固定参数

形参*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)

原文地址:https://www.cnblogs.com/yaya625202/p/8810583.html