码迷,mamicode.com
首页 > 编程语言 > 详细

python 基础篇 12 装饰器进阶

时间:2018-06-19 16:12:42      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:rap   ima   nts   bubuko   声明   war   nbsp   info   分享   

本节主要内容:
1. 通?装饰器回顾
2. 函数的有?信息
3. 带参数的装饰器
4. 多个装饰器同时装饰?个函数

?. 通?装饰器的回顾
开闭原则: 对增加功能开放. 对修改代码封闭
装饰器的作?: 在不改变原有代码的基础上给?个函数增加功能
通?装饰器的写法:

技术分享图片

执行过程:

其实执行  target_func()就是执行inner函数.  inner函数会先执行目标函数之前的代码,然后执行目标函数,之后再执行目标函数之后的代码.

如何获取函数的有用信息:

技术分享图片

函数名.__name__可以查看函数名字

函数名.__doc__可以查看函数文档注释

 技术分享图片

技术分享图片

虽然调用的是target_func函数,但是打印出来的却是inner函数,这个难免会给我误解,所以我们要改回去

 技术分享图片

PS: *args**kwargs什么时候打散, 什么时候聚合
1. 接收参数的时候是聚合, 参数声明
2. 传递参数的时候是打散, 给函数传递实参

技术分享图片

技术分享图片

 

三--装饰器传参

技术分享图片

技术分享图片

执行顺序:  先执行wrapper_out(False),  返回值是wrapper,然后再@wrapper   还是和之前的装饰器一样,一次执行.

 

 . 多个装饰器装饰同?个函数
先读?下这样?个代码.

 技术分享图片

技术分享图片

这个顺序可以自己捋捋      先执行装饰器1,  然后执行装饰器2

 

python 基础篇 12 装饰器进阶

标签:rap   ima   nts   bubuko   声明   war   nbsp   info   分享   

原文地址:https://www.cnblogs.com/dalaoban/p/9198542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!