一、闭包 1.闭包就是在函数内部定义函数并返回内部函数 2.闭包实现代码的封装和复用 3.实例如图所示,内部定义一个比较函数,给定边界值即做出不同的判断 、 二、装饰器 1.装饰器就是利用闭包的原理 2.@就是装饰器的语法糖 3.装饰器可以给函数添加功能 4.实例如图所示,给求和函数添加参数预处理的 ...
分类:
编程语言 时间:
2017-04-13 11:00:25
阅读次数:
166
#需求 定义无参装饰器为被装饰函数添加统计时间的功能 1 import time #导入时间模块 2 3 def timer(func): 4 def wapper(): 5 start = time.time() 6 func() 7 stop = time.time() 8 index_spen... ...
分类:
其他好文 时间:
2017-04-12 20:43:25
阅读次数:
181
1 def menu(): 2 #用户交互界面 3 user_name = input("请输入在用户名:") 4 password = input("请输入密码:") 5 return user_name,password #以元组形式返回值 6 ''' 7 alex1 1111 8 alex2 ...
分类:
其他好文 时间:
2017-04-12 20:40:31
阅读次数:
199
其实这个面向过程编写程序,是编写程序的基础,所以一定要好好掌握 此程序涉及知识点:装饰器,生成器,协程器应用 ...
分类:
编程语言 时间:
2017-04-12 19:33:15
阅读次数:
162
一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): def wrapper(*args, **kwargs): g = func(*args, **kw ...
分类:
编程语言 时间:
2017-04-12 18:00:30
阅读次数:
171
一.基本装饰器 基本装饰器的作用: 在不改变原函数的基础上, 通过装饰器, 给原函数新增某些功能 实现方法: 在原函数上加 @装饰器名字 其中@叫做语法糖 定义装饰器 第一层函数传入参数(用于传入原函数) 第二层使用原函数的同时, 加入需要新增的功能 第一层函数要返回第二层函数名 整个函数形成闭包 ...
分类:
编程语言 时间:
2017-04-12 17:25:48
阅读次数:
171
一、创建型: 二、结构型: (Adapter):适配器模式:类适配、实例适配、接口适配。 (Decorator、Bridge、Proxy):装饰器、桥接、代理 注意比较装饰器和代理:装饰可以选择被装饰的对象,而代理则不能。 (Facade、Composite、Flyweight):外观、组合、享元 ...
分类:
其他好文 时间:
2017-04-12 16:16:54
阅读次数:
171
装饰器 1、定义:假设我们要增强一个函数的功能,比如,在函数调用前后自动打印日志,但又不希望改变这个函数的源代码,这种在代码运行期间动态增加功能且又不改变源代码的方式,成为装饰器(Decorator)。本质上,decorator就是一个返回函数的高阶函数 2.实例 如上图中的原函数为index(), ...
分类:
其他好文 时间:
2017-04-12 01:39:45
阅读次数:
167
一、装饰器定义 器即函数 装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 二、装饰器需遵循的原则 1.不修改被装饰函数的源代码(开放封闭原则) 2.为被装饰函数添加新功能后,不修改被修饰函数的调用方式 三、实现装饰器知识储备 装饰器=高阶函数+函数嵌套+闭 ...
分类:
编程语言 时间:
2017-04-11 16:37:30
阅读次数:
266
代理模式与装饰模式区别: 装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。 因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的 ...
分类:
其他好文 时间:
2017-04-11 13:51:30
阅读次数:
148