函数参数:
若函数中的所实现的需求涉及到一些未知项参与运算(这些未知项需要函数调用者来决定),这时候我们就可以将此未知项设置为参数。
位置参数(又称必选参数)
传递参数的顺序与定义的顺序有关,必须按照定义的顺序来进行传递。传递参数的个数与定义参数的个数保持一致。
关键字参数:
指的是函数调用的时候,可以通过“键-值’'的形式来加以指定,可以清楚位置关系。
当出现位置参数与关键字参数的时候,需要将位置参数写在关键字参数前面
默认参数:
注意:
1.若默认参数与位置参数或者必选参数同时存在的时候,位置参数要写在默认参数前面
当使用此传递参数的时候。
2.给默认参数指定值得=时候,必须指向不可变对象.
不定长参数:
概念:定义函数的时候,我们不确定调用 的时候会传递多少参数进来,可能传递一个,也可能多个或者不传递,此时我们可以使用不定长参数来解决(不定长参数又包括包裹位置参数与包裹关键字参数)
特点:能处理比声明的时候更多的参数(传递多少参数,处理多少参数,不传递不处理)
包裹位置参数:
使用:*变量名 *args
功能:可以收集除了必选参数以外剩余的位置参数,按照元组来进行处理
包裹关键字参数:
使用:"**"变量名 一般用kwargs
功能:收集除定义的变量的关键字参数之外,剩余关键字参数。
包裹关键字参数只处理剩余的关键字参数,收集作为字典来进行处理
注意:当位置参数【必选参数】,默认参数,包裹位置参数,包裹关键字参数同时存在的情况下,一般的顺序为位置参数,默认参数,包裹位置参数,包裹关键字参数
默认参数 与 包裹位置参数可以根据需求,位置可以调换
匿名函数:
定义:无需定义标识符【函数名】的函数或者子程序。
在Python中定义匿名函数使用lambda来进行定义。
语法:
lambda 参数列表: 表达式
特点:
1.lambda后面跟的只是一个表达式,结构体比def的简单
2.参数列表可以有多个参数,参数与参数之间使用逗号隔开
3.无需写return,表达式的结果就是该 表达式的返回值。
优点:
1.结构简单
2.米有名字,无需担心函数名的冲突
匿名函数的调用:
将lambda表达式赋值给一个变量,通过调用变量来调用匿名函数
zip函数
功能:
1.打包,将可迭代对象中对应位置的元素进行打包,它的长度取决于最短的那个,返回zipobj打包好的对象
zip(*zipobj)
解包,将之前打包的元素进行解包处理,以迭代器方式返回。
装饰器:
在代码运行期间动态增加功能的方式我们称之为装饰器。
在装饰器中,分为外函数与内函数
外函数
1.将被装饰的函数传递进来
2.将装饰好的函数返回给调用者
内函数
1.添加动态增加的功能
2.执行被装饰的函
内函数中return什么时候可以省略?
1.使用内函数来接收被装饰函数的参数
2.调用被装饰的函数的时候,需要将参数传递进去