本节主要内容:
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
原文地址:https://www.cnblogs.com/dalaoban/p/9198542.html
时间: 2024-11-09 18:55:47