摘要:
首先他们三个都是python面对对象的装饰器 1 property 1.1 作用:将类方法变成属性 1.2 示例: result: 2 staticmethod 和 classmethod 2.1 作用:只能被类调用的方法 2.2 相同点:都是被类调用的方法 2.3. 不同点:classmethod 阅读全文
摘要:
1 首先介绍app-model的循环引用 2 解决方式 阅读全文
摘要:
1 属性访问优先级为 1 __getattribute__(), 入口 2 数据描述符 3 实例对象的字典 obj.__dict__ (若与描述符同对象名,会被覆盖) 4 类的字典 Class.__dict__ 5 非数据描述符 6 父类的字典 7 __getattr__() 2 调用流程 假设我们 阅读全文
摘要:
该文章持续跟新,看见好的写法就往上放 1 __call__装饰器+描述符 2 使用__call__方法将类定义为装饰器 1 __call__装饰器+描述符 灵感来自bottle源码中描述符的适用 下面是模拟bottle描述符大致的写法 里面有有两块需要注意 1.1 __call__ 方法的返回值是D 阅读全文
摘要:
本文参考 HuangHuang 的文章 原文地址 https://segmentfault.com/a/1190000008150517 1 super 1.1 super是一个内置类,可以参考__builtin__中的 super 类 这里主要选取super类创建对象时候主要适用的方法 __new 阅读全文
摘要:
1 __init__和__new__的区别 1 当创建一个实例的时候会首先调用__new__, 然后在初始化实例的时候会调用__init__. 2 __new__是类级别的方法,__init__是个实例方法. 3 __new__方法会返回一个创建的实例,而__init__不需要有返回值 2 __ne 阅读全文
摘要:
本文主要参考 刘羽冲 的文章,原文地址 点击链接, 原文讲的很生动,我这篇主要做笔记。 1 python的类型衍生 1 type: python所有类型的起源 2 元类 metaclass: 生成类的父 3 类 class: 生成实例的父 4 实例 instance: 对象实例 5 各种方法属性 2 阅读全文
摘要:
UI over 阅读全文
摘要:
这里主要参考 Rookie 的文章,里面用法很pythonic,所以来自己再分析一遍然后记笔记,详见原文 地址 我们这里只看 bottle 框架中的 request。所以我们看 BaseRquest(object) 类 和 BaseRequest 用到的描述器 DictProperty(object 阅读全文
摘要:
1 使用__call__(self,[..)方法将类变成装饰器 这里我就用一个例子和执行图来解释了 result: f.foo() 相当于 temp = Describer(‘zhn’); inner = temp__call__(foo); func_result = inner(foo_self 阅读全文