Python基础知识(14):函数(Ⅴ)
一、装饰器
decorator:本质上就是函数,可以增强函数的功能。
定义起来虽然有点复杂,但使用起来非常灵活和方便
1、不修改被装饰函数的源代码
2、不修改被装饰函数的调用方式
3、装饰函数对被装饰函数透明
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
二、偏函数
functools.partial:把一个函数的某些参数给固定住(即设置默认值),返回一个新的函数,调用这个新函数会更简单
#int函数使用参数base=?,把字符串中的进制数按照对应的进制转成十进制数,默认按照十进制数进行转换 int("30") 30 int("1010",base=2) 10 int("12",base=8) 10 int("30",base=10) 30 int("30",base=16) 48
使用functools.partial
创建一个偏函数用来把二进制数转换成十进制数
import functools int2=functools.partial(int,base=2) int2("10") 2
当函数的参数个数太多,需要简化时,使用functools.partial
可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单
资料来源:
廖雪峰官网:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000