语法:
return [表达式]
[]代表可以省略
作用:
用于函数中,结束当前函数的执行,返回到调用该函数的地方,
同时返回一个对象的引用关系
说明:
1.return语句后跟的表达式可以省略,省略后相当于reurn None
2.如果函数没有return 语句,则函数执行完最后 一条语句后返回 None
(相当于在最后 加了一条return None语句)
3.函数调用一定会返回一个对象的引用
函数的参数传递
传递方式
位置传递
序列传递
关键字传参
字典关键字传参
位置传参
实际参数(实参的对应关系与形式参数(形参))
的对应关系是按位置来依次对应的
示意
def myfun(a,b,c):
pass
说明:
实际参数和形式参数通过位置进行传递的匹配
实参个数必须与形参个数相同
序列传参:
序列传参是指在函数调用过程中,
用*将序列拆解后按位置传参的方式进行参数传递
示例:
def myfun(a,b,c):
pass
s = [1,2,3]
myfun(*s) #表示把s拆开
s2 = "ABC"
myfun(*s2)
关键字传参:
关键字传参是指传参时,按着形参的名称给形参赋值
实参和形参按名称进行匹配
示例:
def myfun(a,b,c):
pass
myfun(b=22,c=33,a=11)
myfun(c=3,b=2,a=1)
字典关键字传参:
是指实参为字典,将用字典有**拆解后进行关键字传参
示例:
def myfun(a,b,c):
pass
d = {"c":33,"a":22,"b":11}
myfun(**d) #拆解字典后再传参
说明:
字典的键名必须和形参名一致
字典的键名要在形参中
字典键名必须为字符串
函数的综合传参:
函数传参方式,在能确定形参能唯一匹配到相应实参的情况下可以任意组合
myfun(b=2,c=3,1) #错误,不能确定1给谁?
说明:
传参时先位置传参,后关键字传参
----------------------以下讲的是函数的形参(如何接收实参)--------
函数的缺省参数
语法:
def 函数名(形参名1 = 默认实参1,形参名2 = 默认实参2,...):
...
示例:
def info(name, age=1,address="未填写"):
print(name,"今年",
age,'岁,家庭地址是:',address)
info("tarena",15)
info("小魏",20,"北京市朝阳区")
info("小李")
说明:
1.缺省参数必须自右至左依次存在,如果一个参数有缺省参数,
则其右侧的所有参数都必须有缺省参数
如:
def test(a,b=10,c): #<---是错的
pass
2.缺省参数可以有0个或多个,甚至全部都有缺省参数
函数的形参定义方式:
位置形参
星号元组形参
命名关键字
双星号字典形参
位置形参:
语法:
def 函数名(形参名1,形参名2,...)
语句块
星号元组形参:
语法
def 函数名(*元组形参名):
语句
命名关键字形参
语法:
def 函数名(*,命名关键字形参)
语句
或
def 函数名(*args,命名关键字形参):
语句
作用:
所有的参数都必须用关键字传参或字典关键字传参传递
示例:
def fm(a,b,*,c,d):不用收集多余的位置传参
def fm(a,b,*args,c,d):收集多余的位置传参
双星号字典形参:
语法:
def 函数名(**字典名)
语句
函数的不定长参数:
def fn(*args,**kwargs):
pass
#可以接收任意的位置传参和关键字传参