随笔分类 -  python_装饰器

摘要:该文章持续跟新,看见好的写法就往上放 1 __call__装饰器+描述符 2 使用__call__方法将类定义为装饰器 1 __call__装饰器+描述符 灵感来自bottle源码中描述符的适用 下面是模拟bottle描述符大致的写法 里面有有两块需要注意 1.1 __call__ 方法的返回值是D 阅读全文
posted @ 2017-11-17 11:17 fuzzier 阅读(159) 评论(0) 推荐(0)
摘要:1 使用__call__(self,[..)方法将类变成装饰器 这里我就用一个例子和执行图来解释了 result: f.foo() 相当于 temp = Describer(‘zhn’); inner = temp__call__(foo); func_result = inner(foo_self 阅读全文
posted @ 2017-10-29 21:47 fuzzier 阅读(854) 评论(0) 推荐(1)
摘要:1 通过下面的代码了解闭包的特性 也相当于调用 out: 2 闭包的特点: 2.1 inner 能访问 outer 及其祖先函数的命名空间内的变量(局部变量、函数参数) 2.2 调用 outer 已经返回了,但是他的命名空间被返回的 inner 对象引用,所以不会被回收 阅读全文
posted @ 2017-10-23 22:19 fuzzier 阅读(360) 评论(0) 推荐(0)
摘要:以下是我看见python装饰器的一些我不熟悉的特点,所以记录一下 1 装饰器的特性: 1.1 可以吧被装饰的函数替换成不同的函数 decorate(func)。 1.2 加载模块时候立即执行。这点很有用 这里我们可以给出最简单的装饰器 2 闭包的特点: 2.1 inner 能访问 outer 及其祖 阅读全文
posted @ 2017-09-24 22:16 fuzzier 阅读(178) 评论(0) 推荐(0)
摘要:前沿: 首先是看到了单例模型,想不明白 outer中的参数 为什么能像 global的参数 一样屹立不倒。 #单例模型 def single_model(cls): instance = {} def inner(*args, **kwargs): print if cls not in insta 阅读全文
posted @ 2017-09-18 16:23 fuzzier 阅读(543) 评论(0) 推荐(1)
摘要:关于python装饰器,不是系统的介绍,只是说一下某些问题 1 首先了解变量作用于非常重要 2 其次要了解闭包 在这里面,func是被装饰的函数,*args, **kwargs是 func要接收的参数 3 装饰器 3.1装饰器中传参数 原理:多一层闭包 然后装饰器可以写成 阅读全文
posted @ 2016-12-28 16:28 fuzzier 阅读(210) 评论(0) 推荐(0)