python3 函数的参数传递: 传递方式: 位置传参 序列传参 关键字传参 字典关键字传参位置传参: 实际调用参数(实参)的对应关系与形式参数(形参)的对应关系是按 位置来依次对应的 示意: 形参是用来接数据的 def fx(a, b, c): pass # fx (1,2,3) 序列传参: 序列传参是指在函数调用过程中,用*将序列拆解后按位置进行传递的传参方式 实参和形参通过序列传递和匹配 示例: def fx(a, b , c): pass s1 =[11, 22, 33] # 列表 fx(*s1) #将s1序列拆解后按位置传入fx中关键字传参: 是指传参时, 按着形参的名称给形参赋值 实参和形参按名称进行匹配 示例: def fx(a, b, c): pass fx(b=22, c=33, a=11) # 11 -->a 22-->b 33-->c 注: 实参和形参按形参名进行匹配, 可以不按位置进行匹配字典关键字传参: 实参为字典, 用**拆解字典后再进行关键字传参: 示例: def fx(a, b, c): pass d = {'c':33, "b":22, "a":11} fx(**d) #拆解字典再依次按关键字传参 说明: 字典的键名和形参名必须一致 字典的键名必须为字符串 字典的键名要在形参中存在综合传参: positional(位置) 函数的传参方式在能确定形参能唯一匹配到相应实参的情况下可以任意组合 注: 通常位置传参和序列传参先传递, 其次是关键字传参和字典 关键字传参 示例: def fx(a, b, c, d, e, f): passx fx(10, *[20, 30], e=50, **{"d":33, "f":60}) #以下是错误传法: fx(e=50, **{'d':40, "f":60}, 10, *[20,30])接收的方式:############################以下讲函数的形参###########################函数的缺省参数 语法: def 函数名(形参名1 = 默认实参1, 形参2=默认实参2.....): 语句 示例: def info(name, age=1, address="不详"): print("我叫",name,"我今年",age,"岁", "家庭住址:", address) info("张飞",30, "中原") info("tarena",10) info("赵云") 说明: 缺省参数必须自右至左依次存在 缺省参数可以有0个,1个,多个,甚至全部都有缺省参数 缺省参数的绑定对象存在于函数内, 同函数的生命周期一致 示例: def fn(a, lst=[]): lst.append(a) print(lst) l = [1, 2, 3, 4] fn(5, l) fn(1.1) fn(2.2)函数的形参定义方式: 1. 位置形参: 2. 星号元组形参 3. 命名关键字形参 4. 双星号字典形参 函数不关心外部,只关心形参位置形参: def 函数名(形参1, 形参2, ....) 语句块星号元组形参: 语法: def 函数名(*元组形参名:): 语句块 作用: 收集多余的位置传参命名关键字形参 语法: def 函数名(*, 命名关键字形参): 语句块 或 def 函数名(*args, 命名关键字形参): 语句块 作用: 所有的命名关键字形参都强制调用者采用关键字传参或字典关键字 传参的方式调用 双星号字典形参: 语法: def 函数名(**字典形参名): 语句块 作用; 收集多余的关键字传参 注: 字典形参名通常叫:kwargs函数参数说明: 位置形参, 命名关键字,缺省形参,星号元组形参, 双星号字典形参可以混合使用函数参数自左至右的顺序为: 1. 位置形参 2, 星号元组形参 3. 命名关键字形参 4 双星号字典形参示例; def fn(a, b, *args, c, **kwargs): pass fn(100, 200, 300, 400, *"AB", **{"d": "d"}, c = 100)可以接收任意位置传参和关键字传参的函数:def fn(*args, **kwars): pass