def foo(): print("foo") def bar(func):#func是一个指针 func() print(id(foo)) print(set)#set是一个类 print(set())#加上()后set是一个实例 bar(foo) #修饰器的好处,方便添加日志 #添加日志的土方法 ...
分类:
其他好文 时间:
2020-05-13 09:58:57
阅读次数:
60
一.定义 装饰者模式(Decorator Pattern):动态的给一个对象添加新的功能,同时又不改变其结构。又叫装饰器模式 若要扩展功能,装饰者模式提供了比继承更有弹性的替代方案 二.装饰者模式的角色 抽象构件(Component)角色:是一个抽象类或者接口,是要装饰原始对象 具体构件(Concr ...
分类:
编程语言 时间:
2020-05-07 00:41:42
阅读次数:
71
学习自耗子叔 简单几个例子 package main import "fmt" func decorator(f func(s string)) func(s string) { return func(s string) { fmt.Println("started") f(s) fmt.Prin ...
分类:
其他好文 时间:
2020-05-04 13:41:45
阅读次数:
79
定义: 装饰器模式(Decorator):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器比生成子类更加灵活。 结构: Component:定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteComponent:定义了一个具体的对象,也可以给这个对象添加一些职责。 Decor ...
分类:
Web程序 时间:
2020-05-04 13:00:41
阅读次数:
64
为了限制类属性的被外界访问范围,通常在类中设置了set方法和get方法用于对属性值的赋值与取值,这样在对属性赋值取值的时候就会略显复杂。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?对于追求完美的Python程序员来说,这是必须要做到的! 还记得装饰器(decorator)可 ...
分类:
其他好文 时间:
2020-04-30 23:35:10
阅读次数:
108
装饰者模式 装饰者模式(Decorator),不改变原本对象,动态地给一个对象添加一些额外的职责,比继承更加灵活(继承在扩展功能上是静态的),符合开闭原则(对于扩展是开放的,对于更改是封闭的) Component:抽象的装饰主体 ConcreteComponent:具体的装饰主体 Decorator ...
分类:
其他好文 时间:
2020-04-28 15:00:51
阅读次数:
49
简单的认证 @Login_required 装饰器 判断是否登陆,没有就自动重定向某个地方 用法:(局限于装饰函数)(如果要装饰一个类,则不能,要使用method_decorator) @login_required(login_url='users:login') def index_fn(reu ...
分类:
其他好文 时间:
2020-04-27 17:05:35
阅读次数:
332
一、什么是简单工厂模式 简单工厂模式是用一个单独的类来做创造实例化的过程。而被实例化的类通常都存在共同的父类。 二、简单工厂模式的结构 工厂类是简单工厂模式的核心,负责实现实例化的内部逻辑。 三、简单工厂模式的实例 首先创建一个计算器的运算类。 运算操作父类 class Operation: def ...
分类:
其他好文 时间:
2020-04-16 13:40:24
阅读次数:
80
1. 用于拓展原来函数功能的一种函数 2. 返回函数的一种函数 3. 在不用更改原函数代码的前提下给函数添加新的的功能 (1)没有装饰器时的实现 """ 不用装饰器的情况 """ def hello(): print("hello...") def test(): print("test...") ...
分类:
编程语言 时间:
2020-04-15 16:28:39
阅读次数:
75
UML 图: Component 功能接口,里面的 Operation 方法为具体要实现的功能 ConcreteComponent 接口具体的实现类或者说是实现主体 Decorator 装饰器类,一般是个抽象类和 Component 是聚合关系,里面包含了一个 Component 的引用 Concr ...
分类:
其他好文 时间:
2020-04-14 19:05:01
阅读次数:
83