年纪大了,记性不好,老忘,所以在读完这本书后写了这一系列文章,文章中没有任何书中的示例代码,只是对每条知识点的总结。写给自己看,分享给大家看,不足之处欢迎指正。
第六章:内置模块(总结)
第42条:用functools.wraps定义函数修饰器
装饰器函数的执行顺序是分为(被装饰函数)定义阶段和(被装饰函数)执行阶段的,装饰器函数在被装饰函数定义好后立即执行
在函数定义阶段:执行顺序是从最靠近函数的装饰器开始,自内而外的执行
在函数执行阶段:执行顺序由外而内,一层层执行
总结:装饰器可以对函数进行封装,但是会改变函数信息,使用 functools 的 warps 可以解决这个问题
第43条:考虑以contextlib和with语句来改写可以复用的try/finally
本条建议大家使用with语句代替try/finally,增加代码可读性,但是博主是从Java转入的,所以还是习惯用try/finally
总结:
1.可以用with语句来改写try/finally块中的逻辑