装饰器 定义: 用来装饰的工具 在不改变源代码及调用方式的基础上额外增加新的功能 开放封闭原则: 扩展是开放的(增加新功能) 修改源码是封闭的(修改已经实现的功能) 版一: 版二: 版三(初识版装饰器): 版四(第二版装饰器): low版 高级版: 标准版: 语法糖 语法糖必须放在被装饰的函数正上方 ...
分类:
其他好文 时间:
2019-07-25 21:44:23
阅读次数:
98
概念 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。 举例 模板题链接:区间和 代码如下: 推荐习题:赶牛入圈(POJ3179) ...
分类:
编程语言 时间:
2019-07-24 22:28:45
阅读次数:
128
深拷贝和浅拷贝的区别 1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用 2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用” 为什么要使用深拷贝? 我们希望在改变新的数组(对象)的时候,不改变原 ...
分类:
其他好文 时间:
2019-07-23 23:58:42
阅读次数:
211
装饰器 开放封闭原则: 扩展是开放的(增加新功能) 修改源码是封闭(修改已经实现的功能) 在不改变源码及调用方式的基础上额外增加新的功能 装饰器 用来装饰的工具 版一 版二 版三 low版 高级 语法糖 ——— 甜 语法糖必须放在被装饰的函数正上方 func = wrapper(func) func ...
分类:
其他好文 时间:
2019-07-23 16:41:22
阅读次数:
92
应用场景:Apollo是基于AppID来区分不同实例配置,那如何在不改变AppID的情况下使用不同的配置实例呢?那就可以使用Apollo集群 目前需求:通过docker搭建一个项目的多个实例,而项目的配置是依赖于Apollo的,在不改项目AppID的情况下使得每个实例使用不同的Apollo配置。 配 ...
分类:
其他好文 时间:
2019-07-23 15:12:50
阅读次数:
1150
装饰器模式的作用 在不修改原先对象核心的功能的情况下,对功能进行增强。 增强对象的功能的途径 2.通过装饰模式,将方法增强。如图 装饰模式架构 car :被装饰的抽象类 benCar:被装饰的实现 Decorator:装饰的类 Client:测试类 测试结果: 总结:装饰模式在不改变原先核心功能的情 ...
分类:
编程语言 时间:
2019-07-18 13:43:25
阅读次数:
162
Python 装饰器中的@wraps的作用: 装饰器的作用: 在不改变原有功能代码的基础上,添加额外的功能,如用户验证等 @wraps(view_func)的作用: 不改变使用装饰器原有函数的结构(如__name__, __doc__) 不使用wraps可能出现的ERROR: view_func.. ...
分类:
编程语言 时间:
2019-07-16 15:18:24
阅读次数:
138
1."""闭包函数 1.闭:定义在函数内部的函数 2.包:内部函数引用了外部函数作用域的名字"""2.装饰器简介"""装饰器: 器:就是一个工具 装饰:给被装饰对象添加新的功能 为什么要用装饰器 开放封闭原则: 开放:对扩展开放 封闭:对修改封闭 装饰器(可调用对象)必须遵循的两个原则: 1.不改变 ...
分类:
其他好文 时间:
2019-07-16 00:34:04
阅读次数:
132
总结理解的模板方法设计模式及抽象类 (菜鸟一只,若有什么侵权或者不足之处,请指出,谢谢) 模板方法设计模式: 在父类中定义一个总体的算法骨架,而将一些具体的实现步骤放在到子类中,因为不同的子类实现细节不同 模板方法使得子类可以在不改变算法框架的情况下,只需要重新定义算法的某些实现步骤(借助于抽象类实 ...
分类:
其他好文 时间:
2019-07-14 23:56:02
阅读次数:
229
1.数组简单拷贝,不改变原数组 当数组的元素为复杂类型时,slice 不适用 2.对象深拷贝 ...
分类:
Web程序 时间:
2019-07-14 13:06:43
阅读次数:
113