Lenskit 2019-06-26
本文是学习廖雪峰官网网站python教程后总结的,供日后参考用
1.高阶函数
一个函数将另一个函数作为参数,称为高阶函数。当然也可以将一个函数作为结果返回
示例1:将函数作为参数
def add(x,y,f): return f(x)+f(y) result = add(-3,2,abs) print(result) // 5
示例2:将函数作为结果返回
def func(x,y): def add(): return x+y return add f = func(2,3) print(f) // Out:<function func.<locals>.add at 0x0000019D1F420158> result = f() print(result) // 5
2.匿名函数
f = lambda x: x*x print(f) // <function <lambda> at 0x0000019D1F420158> result = f(5) print(result) //25
3.装饰器
装饰器(decorator)就是一个返回函数的高阶函数,在代码运行期间动态增加功能。
无参数的装饰器示例:
import functools def log(func): //经过装饰的函数名称发生改变,此方法解决这个问题 @functools.wraps(func) def wrapper(*args,**kw): print('call %s:' % func.__name__) return func(*args,**kw) return wrapper @log def now(): print("2018-2-4") now() // call now: 2018-2-4
带参数的装饰器示例:
import functools def log(text): def decorator(func): //经过装饰的函数名称发生改变,此方法解决这个问题 @functools.wraps(func) def wrapper(*args, **kw): print('%s %s():' % (text, func.__name__)) return func(*args, **kw) return wrapper return decorator @log('execute') def now(): print('2015-3-25') now() // execute now(): 2015-3-25
4.偏函数
偏函数就是把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
import functools //等价于 //def int2(x, base=2): // return int(x, base) int2 = functools.partial(int, base=2) result = int2('100000') print(result) // 32