函数-非固定参数

# 刚才你写的报警,发给某个人。

def send_alert(msg,user)

#那如果公司规模扩大了,要求发给10个人或更多怎么办呢?

#难道你要重复敲10行或更多的代码?

def send_alert(msg,user1)

def send_alert(msg,user2)

def send_alert(msg,user3)

def send_alert(msg,user4)

#其实不用这么麻烦!

def send_alert(msg,*users)

send_alert('cpu过高',‘alex’,‘jack’.....)

#如果参数中出现 *users,传递的参数就可以不再是固定个数,传过来的所有参数打包元组给(*users)

#方式一:

send_alert('cpu过高',‘alex’,‘jack’.....)

#方式二:

send_alert('cpu过高',*[‘alex’,‘jack’.....])

def func(name,*args,**kwargs)

  print(name,args,kwargs)

func('alex',22,'tesla','500w')

#执行结果:

alex (22, ‘tesla’, ‘500w’){}

#未定义的参数是放到后面字典里的

列子:

func('alex',22,'tesla','500w',addr=‘山东’,num=12442323)

#执行结果:

alex (22, ‘tesla’, ‘500w’){‘num’:12442323,‘addr’:‘山东’}

#如果是字典呢会是什么样的效果我来看一下

d = {‘degree’:‘primary school’}

func(‘peiqi’,d)

打印结果:

peiqi ({‘degree’:‘primary school’},){}

#那怎么样才能传到后面参数里去呢

func(‘peiqi’,**d)

打印结果:

peiqi (){‘degree’:‘primary school’}

猜你喜欢

转载自www.cnblogs.com/kingforn/p/10890611.html
今日推荐