1. 因为函数是对象,所以很多构造能轻易的表达出来。比如我们要对下面的string做一些数据清洗:
还有一种做法:
注意:这种操作很奇特,对于string的内奸函数需要使用str.xxx访问
一个更加函数化的方式能够让你方便的在一个高等级上转变一个string。可以把函数当做其他函数的参数,比如用内建的map函数,这个map函数能把一个函数用于一个序列号是哪个:
2. 匿名函数(lamda函数)
函数只有一行,结果能返回值。下面两个函数是一样的效果,函数短小,不需要重用很多次
3. 柯里化:局部参数应用
什么是柯里化?柯里化就是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数
的技术
4. 生成器(Generators)
生成器在python中很重要,能用来迭代序列,比如,迭代一个字典。
当遇到for loop这样的情景时,一个生成器能产生object给python解释器。大部分方法,除了list之类的object,都能接受迭代器。
比如内建的函数min、max、sum或是类型构造器list、tuple;
生成器是用于构造迭代对象的间接方式。不像其他函数一口气执行完,返回一个结果,生成器是多次返回一个序列,每请求一次,才会返回一个。
用yield可以构建一个生成器。
生成器表达式:与列表表达式相同,只不过使用括号:生成器表达式可以作为函数的参数,但是列表表达式不能作为函数的参数