本节内容
- 迭代器&生成器
- 装饰器
- Json & pickle数据序列化
- 软件目录结构规范
装饰器
-
定义: 本质是函数,用以装饰其他函数,就是为其他函数添加附加功能
-
原则:
1) 不能修改被装饰的函数的源码
2) 不能修改被装饰的函数的调用方式 -
例子:
结果:
-
实现装饰器**知识储备**: a. 函数即变量 b. 高阶函数 1) 把一个函数名当作实参传给另外一个函数(在不修改被装饰函数源代码的情况下为其增加功能) 2) 返回值中包含函数名(不修改函数的调用方式) c. 嵌套函数(在一个函数体内用def声明另一个函数)
高阶函数+嵌套函数===> 装饰器
-
一些例子
例1
测试结果:
例2
加入高阶函数
测试结果:
总结:调用方式修改!
例3
保持调用方式不变
测试结果
总结:没有修改函数源代码+没有修改函数调用方式-----》符合要求
但发现并没有用到嵌套函数 下面会加一个嵌套函数
例4
满足上述条件简要版本
结果测试
总结:
可以看出使用嵌套函数 没修改源码
没修改调用方式
例5
精简版 加入@(嵌套函数名)
测试结果
例6
当调用函数test2(name,age)本身有传入参数name和age时,需要在嵌套函数中也加入相应的参数设置
deco(*args,**kwargs)
func(*args,**kwargs)
测试结果
例7
实例模拟登陆页面场景