装饰者模式(Decorator) 装饰者模式(Decorator):动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 装饰者模式结构: 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 具体构件(ConcreteComponent)角 ...
分类:
其他好文 时间:
2020-06-02 11:42:00
阅读次数:
47
定义 本质是函数,用来装饰其他函数(为其他函数添加附加功能)。通俗来讲:高阶函数 + 嵌套函数 = 装饰器 原则 1.不能修改被装饰的函数的源码 2.函数的调用方式也不能被修改 现存在一个函数 foo(), import time def foo(): time.sleep(1) print('in ...
分类:
其他好文 时间:
2020-06-01 22:19:04
阅读次数:
68
百度云盘:《Python编程入门(第3版)》PDF点此下载 提取码:49q4 内容简介 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,自20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和Web编程。 本书用通俗易懂的语言结合常见任务、屏幕图和详细的解释,循序渐进地介 ...
分类:
编程语言 时间:
2020-06-01 20:57:24
阅读次数:
164
装饰器: 在不改变原有代码的基础上,实现功能的扩充.用原函数扩展新功能,用新功能去代替旧功能,用@表示情况一: 基本用法(闭包函数),通过闭包函数来扩展新功能 def kuozhan(tree): def new_tree(): print("旁边有小草") tree() print("旁边有小花" ...
分类:
其他好文 时间:
2020-06-01 20:31:47
阅读次数:
60
本教程源码请访问:tutorial_demo 一、什么是动态代理 1.1、概念 动态代理的用途与装饰模式很相似,就是为了对某个对象进行增强。所有使用装饰者模式的案例都可以使用动态代理来替换。 特点:字节码随用随创建,随用随加载; 作用:不修改源码的基础上对方法增强; 学习目的:为了学习AOP的原理做 ...
分类:
编程语言 时间:
2020-06-01 20:24:12
阅读次数:
54
调试程序时,很多人喜欢直接用print来代替断点调试,而pysnooper模块比print更方便,以装饰器的形式存在 安装pysnooper模块 pip3 install pysnooper 具体使用 import pysnooper @pysnooper.snoop()def test(): a ...
分类:
编程语言 时间:
2020-06-01 11:48:07
阅读次数:
62
函数高级 一、闭包 def fun1(): x = 520 def fun2(): print(x) x = 1200 fun1() print(x)# 内部函数包含对外部作用于而非全局作用域的引用 二、装饰器 不改变函数体的代码,并且不改变函数的调用方式,为函数添加功能,他本质就是一个函数,附加被 ...
分类:
编程语言 时间:
2020-05-31 17:56:14
阅读次数:
59
前端回顾 前端就是展示给用户并且与用户进行交互的操作界面。 前端包括包括三部分: html:网页的骨架,没有任何样式,比较丑 css:相当于一些装饰品,给骨架添加样式。 js:控制网页的动态效果。 前端也有很多框架,只需要按照固定的语法进行调用即可。 基础知识 软件的开发架构分为两种: CS:拥有客 ...
分类:
Web程序 时间:
2020-05-31 16:14:24
阅读次数:
67
案例研究:机器人和餐具 其次,也是更重要的一点,我们过去(现在也仍然不相信)标准的多线程模型,它是共享内存抢占式并发:我们仍然认为没有人能够在“a = a + 1”是不确定的语言中编写正确的程序。 我讲了一个餐厅的故事,里面的类人机器人——ThreadBots——做了所有的工作。在这个比喻里,每个工 ...
分类:
编程语言 时间:
2020-05-31 11:29:38
阅读次数:
57
1.闭包介绍 闭包的定义: 在函数嵌套的前提下,内部函数使用了外部函数的变量(外部函数的参数也属于外部函数的变量),并且外部函数返回了内部函数的引用,我们把这个使用外部函数变量的内部函数称为闭包。 # 定义一个外部函数 def func_out(num1): # 定义一个内部函数 def func_ ...
分类:
其他好文 时间:
2020-05-31 11:02:06
阅读次数:
70