函数的参数

形式参数(形参)

形参只在函数内部有效,函数调用结束返回主调用函数后不能再使用该形参。

实际参数(实参

实参可以是常量,变量,表达式,函数等,但都必须有确定的值,应该预先赋值,再带入实参。

默认参数

如果函数定义中有默认参数,实参中没有该默认参数,调用形参时会带入默认参数。(下面函数c 的Country还是USA)

def stu_register(name,age,course,country = "CN"):
    print("------注册学生信息-------")
    print('Name: %s' % name)
    print("Age: %s" % age)
    print("Country: %s " % country)
    print("Course: %s" % course)
a = stu_register("dapeng",18,"python")
b = stu_register("kanshan",13,"Go")
c = stu_register("laoge",19,"java","USA")
print(a)

  传入的实参位置和形参位置必须是一一对应的。

默认参数要放在位置参数后面。

关键参数:给实参指定形参名,可以不按顺序放。但是关键参数必须要放在位置参数后面。

一个位置参数只能同时接受一个值,实参里不能同时像一个形参传入两个值。

在形参前面加*,形参接受到的参数可以形成元组

如下,msg对应的实参lucy,后面的实参和user对应,打包形成元组,发送给users。

def send_alert(msg,*user):
    for u in user:
        print("报警发送给 %s" % u)

send_alert('lucy','dapeng','liusir')

如果传送给形参的是列表或者元组,需要在列表或者元组前面加*号。

def send_alert(msg,*user):
    for u in user:
        print("报警发送给 %s" % u)

send_alert('lucy',*['dapeng','liusir','fhjfj'])

def send_alert(msg,*args,**kwargs):
    print(msg,args,kwargs)


send_alert('lucy','dapeng','liusir','fhjfj')
lucy ('dapeng', 'liusir', 'fhjfj') {}   (处理结果有个空字典,空字典接受自定义的实参)

在实参里加入自定义参数

def send_alert(msg,*args,**kwargs):
    print(msg,args,kwargs)
send_alert('lucy','dapeng','liusir','fhjfj',age = 18,city = "nanjing")
lucy ('dapeng', 'liusir', 'fhjfj') {'age': 18, 'city': 'nanjing'}

最后结果传入字典

def send_alert(msg,*args,**kwargs):
    print(msg,args,kwargs)
d = {"yeuu":"eueuj"}
send_alert("dapeng",**d)
dapeng () {'yeuu': 'eueuj'}

 

  

  

 

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/8516406.html