python疑问7:高阶函数,匿名函数,装饰器,偏函数总结
本文是学习廖雪峰官网网站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) // 52.匿名函数
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-254.偏函数
偏函数就是把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
import functools
//等价于
//def int2(x, base=2):
// return int(x, base)
int2 = functools.partial(int, base=2)
result = int2('100000')
print(result) // 32 相关推荐
meylovezn 2020-09-21
usepython 2020-05-28
举 2020-05-20
amazingbo 2020-02-26
牵手白首 2020-02-01
wklken的笔记 2020-01-30
sulindong0 2020-01-19
chinademon 2020-01-12
wyqwilliam 2020-01-02
Yellowpython 2020-01-08
JasonYeung 2019-12-28
xiaoge00 2019-12-21
NameCHC 2019-12-05
xcguoyu 2019-11-12
wyqwilliam 2019-11-05
banzhihuanyu 2019-11-01
codeAB 2019-10-26