随笔分类 - python_OOP
摘要:主要参考 http://python.jobbole.com/85685/ 算法更新顺序 DFS : 存在多继承中无法重写问题 BFS:存在继承单调性问题 C3算法:算法像是 拓扑排序+优先最左 的方式
阅读全文
摘要:主要是开发过程中遇见了新坑 在访问多继承中次类对象属性的时候,发现无法访问 解决参考 stackoverflow 的 回答 补充: python mro的算法主要 DFS --> BFS --> C3算法 参考 http://python.jobbole.com/85685/ 代码如下: 结果 如果
阅读全文
摘要:首先他们三个都是python面对对象的装饰器 1 property 1.1 作用:将类方法变成属性 1.2 示例: result: 2 staticmethod 和 classmethod 2.1 作用:只能被类调用的方法 2.2 相同点:都是被类调用的方法 2.3. 不同点:classmethod
阅读全文
摘要: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
阅读全文
摘要:总的来说python的 magic method 主要是围绕一些类中形如 __xx__ 的样子的方法。 1 构造对象和初始化对象 __new__, __init__ 等 2 控制属性访问 __getattribute__, __setattr__ 等 3 创建对象描述符 __get__, __set
阅读全文
浙公网安备 33010602011771号