装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷 ...
分类:
编程语言 时间:
2016-11-08 11:31:01
阅读次数:
194
你是一家视频网站的后端开发工程师,你们网站有以下几个版块 视频刚上线初期,为了吸引用户,你们采取了免费政策,所有视频免费观看,迅速吸引了一大批用户,免费一段时间后,每天巨大的带宽费用公司承受不了了,所以准备对比较受欢迎的几个版块收费,其中包括“欧美” 和 “河南”专区,你拿到这个需求后,想了想,想收 ...
分类:
编程语言 时间:
2016-11-08 01:42:23
阅读次数:
338
生成器 迭代器 装饰器 模块 来个需求,一个列表中所有元素都+1 1.最容易想到的方法 for循环,找列表索引,对应每个值+1 list_old = [1,2,3,4,5,6,7,8,9] for index,i in enumerate(list_old): list_old[index]+=1 ...
分类:
编程语言 时间:
2016-11-08 00:42:22
阅读次数:
313
一个例子,假设说你有一个一个的列车车厢,每一个车厢都有对运输功能作一些不同的增强,然后你选取一些这样的车厢,连接起来,形成一个专列,这个专列的功能就是组成它的那些车厢的功能的叠加。这些都是生活中比较典型的装饰模式 层层包装,增强功能。这就是装饰模式的要旨 对扩展开放,对修改关闭 动态的给一个对象添加 ...
分类:
其他好文 时间:
2016-11-07 01:26:13
阅读次数:
188
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 比如游戏机有一个GamePad类, 现在要增加一个作弊功能(例如100条命), 如果直接在GamePad类中去添加可能会影响其他子类的使用 我们考虑装饰模式思维, 先建立 ...
分类:
其他好文 时间:
2016-11-06 14:27:22
阅读次数:
284
wraps其实没有实际的大用处, 就是用来解决装饰器导致的原函数名指向的函数 的属性发生变化的问题; 装饰器装饰过函数func, 此时func不是指向真正的func,而是指向装饰器中的装饰过的函数 import sys debug_log = sys.stderr def trace(func): ...
分类:
其他好文 时间:
2016-11-04 23:25:53
阅读次数:
149
题意: p start enda1,a2......ap (1<=ai<=n)第一行表示从星期start 到星期end 一共生产了p 件装饰物(工作的天数为end-start+1+7*x,加7*x 是因为它可能生产很多周),第二行表示这p 件装饰物的种类(可能出现相同的种类,即ai=aj)。规定每件 ...
分类:
其他好文 时间:
2016-11-04 20:55:29
阅读次数:
178
题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别 ...
分类:
其他好文 时间:
2016-11-03 16:19:51
阅读次数:
446
装饰器本质上是一个python函数,它可以让其它函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象。装饰器主要用于插入日志、性能测试、事务处理、缓存及权限校验等,解决代码重复使用。值得注意的是,内层函数保留(记忆)了外层函数的(参数)状态。 一、装饰器创建 装饰器的语法 ...
分类:
编程语言 时间:
2016-11-03 02:35:10
阅读次数:
323
#函数装饰器即为不改变原函数代码的情况下为原函数添加额外功能。 ...
分类:
编程语言 时间:
2016-11-02 17:28:48
阅读次数:
304