一:keyword-only参数
由于args是位置可变参数,可以截获传递所有的位置实参,所以参数x不能接收到其它位置实参,这时,只能通过关键字实参的方式给x传值。
实参解构
给函数提供实参的时候,可以使用*或者**,把参数解构
非字典类型使用*解构成位置参数
字典类型使用**解构成关键字参数
二:Lambda函数
Lambda函数用于创建一个匿名函数,函数名未和标识符进行绑定。
使用Lambda函数可以返回一些简单的运算结果。
格式:
lambda 变量1,变量2…:表达式
三:Generator函数
Generator函数的作用是一次产生一个数据项,并把数据项输出,迭代性能更佳。
格式:
def 函数名(参数列表):
…
yield 表达式
说明:Generator函数的定义与普通函数的区别只是在函数体内使用yield生成数据项。 Generator函数可以被for循环中遍历,且可以通过__next__()方法(Python 2是next方法)获得yield生成的数据项。
四:高阶函数
可以接收其他函数作为参数的函数。
任务:利用add(x,y,f)函数,计算:x的平方根与y的平方根之和。
map()是 Python内置的高阶函数,它接收一个函数f和列表或元组对象,并通过把函数f依次作用在列表或元组的每个元素上。
任务:把列表中的每个字符串的第一个字母大写,其余小写。
reduce()函数接收一个函数 f,一个序列,reduce()传入的函数 f 必须接收两个参数,reduce()对序列的每个元素反复调用函数f,并返回最终结果值。
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个可迭代对象,这个函数 f 的作用是对每个元素进行判断
f返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素
由于args是位置可变参数,可以截获传递所有的位置实参,所以参数x不能接收到其它位置实参,这时,只能通过关键字实参的方式给x传值。
实参解构
给函数提供实参的时候,可以使用*或者**,把参数解构
非字典类型使用*解构成位置参数
字典类型使用**解构成关键字参数
二:Lambda函数
Lambda函数用于创建一个匿名函数,函数名未和标识符进行绑定。
使用Lambda函数可以返回一些简单的运算结果。
格式:
lambda 变量1,变量2…:表达式
三:Generator函数
Generator函数的作用是一次产生一个数据项,并把数据项输出,迭代性能更佳。
格式:
def 函数名(参数列表):
…
yield 表达式
说明:Generator函数的定义与普通函数的区别只是在函数体内使用yield生成数据项。 Generator函数可以被for循环中遍历,且可以通过__next__()方法(Python 2是next方法)获得yield生成的数据项。
四:高阶函数
可以接收其他函数作为参数的函数。
任务:利用add(x,y,f)函数,计算:x的平方根与y的平方根之和。
map()是 Python内置的高阶函数,它接收一个函数f和列表或元组对象,并通过把函数f依次作用在列表或元组的每个元素上。
任务:把列表中的每个字符串的第一个字母大写,其余小写。
reduce()函数接收一个函数 f,一个序列,reduce()传入的函数 f 必须接收两个参数,reduce()对序列的每个元素反复调用函数f,并返回最终结果值。
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个可迭代对象,这个函数 f 的作用是对每个元素进行判断
f返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素