python函数之参数参数解构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数之参数参数解构相关的知识,希望对你有一定的参考价值。
函数
python函数组成: 定义语句,函数名,参数列表,代码块 函数作用: 将一段功能代码封装起来,便于复用. 代码更加简洁. 函数的分类: 內建函数: 如,max()等 库函数: 如,math.ceil()等 函数的定义: def语句定义函数(定义后的函数才能使用) def functionNAME([args_list]): 代码块 [return value] 函数名的规范和标识符规范相同. 缩进约定为4个空格 return语句可省略,但其默认返回值是None 例: def fn(x): return x 函数的调用: 通过函数名来调用此函数,functionNAME([args_list]) 函数时可调用的对象,callable()函数检查此对象是否可调用 例: fn(1)
参数
形参: 函数定义时所使用的参数 实参: 函数调用时所使用的参数 传参: 实参根据形参的匹配规则,逐一传递给形参 参数默认值: 定义时,在形参后跟上一个值(可变参数无默认值) 作用: 当实参未给足时,对没有给定的参数赋值为默认值 参数过多,简化函数调用
形参有: 位置参数、可变位置参数、可变关键字参数、keyword-only参数 实参有: 位置参数、关键字参数
形参: 位置参数,可接受一个实参,根据实参传递的顺序从左至右依次匹配 表示方式: 参数名,例: def fn(x) 可变位置参数,可接受任意个位置实参(包括0个),在位置参数被取完后,其余都被其接收 表示方式: ‘*‘号后跟参数名,例: def fn(*args) 将一组位置参数形成一个tuple 可变关键字参数,可接受任意个关键字实参(包括0个),在关键字参数被取完后,其余都被其接收 表示方式: ‘**‘号后跟参数名,例: def fn(**kwargs) 将一组关键字参数形成一个字典 keyword-only参数,在可变位置参数之后的普通参数,可接受一个实参,按左右顺序与实参匹配 表示方式: 1.‘*‘, 后跟普通参数 例: def fn(*,x,y) , x和y是keyword-only参数 2.可变位置参数后跟普通参数 例: def fn(*args,x,y) , x和y是keyword-only参数
实参: 位置参数: 可以是集合对象,可迭代对象,可看做一个整体的单个对象.例: (1,2),{1,2},[1,2],list(range(1,3)),1 关键字参数: name = value 格式的参数.例: ‘a‘ = 1
形参定义顺序规则: 位置参数 --> 位置参数(含默认值) --> 可变位置参数 --> keyword-only参数 --> keyword-only参数(含默认值) --> 可变关键字参数 传参顺序: 位置参数 --> 关键字参数 实参与形参匹配规则: 位置实参传递时,形参从左至右依次匹配 关键字实参传递时,形参根据关键字来匹配,跟顺序无关
动态语言和静态语言函数定义上的区别: 动态语言的函数的形参是没有类型的,因此在传递实参时,不会报错. 而静态语言的函数的形参是有类型的,因此在传递实参时,会直接报错.
参数解构(实参的解构)
解构对象 集合类型 可迭代对象 解构符号*和** *将非字典类型的解构对象解构成位置参数 **将字典类型的解构对象解构成关键字参数 提取出来的实参个数要与形参个数能匹配,实参类型得匹配
本文出自 “12064120” 博客,请务必保留此出处http://12074120.blog.51cto.com/12064120/1973029
以上是关于python函数之参数参数解构的主要内容,如果未能解决你的问题,请参考以下文章