随笔分类 -  python_OOP

摘要:主要参考 http://python.jobbole.com/85685/ 算法更新顺序 DFS : 存在多继承中无法重写问题 BFS:存在继承单调性问题 C3算法:算法像是 拓扑排序+优先最左 的方式 阅读全文
posted @ 2018-11-02 17:21 fuzzier 阅读(245) 评论(0) 推荐(0)
摘要:主要参考:平和的心的cnblogs 阅读全文
posted @ 2018-07-05 09:54 fuzzier 阅读(117) 评论(0) 推荐(0)
摘要:主要是开发过程中遇见了新坑 在访问多继承中次类对象属性的时候,发现无法访问 解决参考 stackoverflow 的 回答 补充: python mro的算法主要 DFS --> BFS --> C3算法 参考 http://python.jobbole.com/85685/ 代码如下: 结果 如果 阅读全文
posted @ 2018-02-02 10:52 fuzzier 阅读(2590) 评论(0) 推荐(0)
摘要:首先他们三个都是python面对对象的装饰器 1 property 1.1 作用:将类方法变成属性 1.2 示例: result: 2 staticmethod 和 classmethod 2.1 作用:只能被类调用的方法 2.2 相同点:都是被类调用的方法 2.3. 不同点:classmethod 阅读全文
posted @ 2017-12-01 08:36 fuzzier 阅读(150) 评论(0) 推荐(0)
摘要:1 属性访问优先级为 1 __getattribute__(), 入口 2 数据描述符 3 实例对象的字典 obj.__dict__ (若与描述符同对象名,会被覆盖) 4 类的字典 Class.__dict__ 5 非数据描述符 6 父类的字典 7 __getattr__() 2 调用流程 假设我们 阅读全文
posted @ 2017-11-18 09:11 fuzzier 阅读(473) 评论(0) 推荐(0)
摘要:该文章持续跟新,看见好的写法就往上放 1 __call__装饰器+描述符 2 使用__call__方法将类定义为装饰器 1 __call__装饰器+描述符 灵感来自bottle源码中描述符的适用 下面是模拟bottle描述符大致的写法 里面有有两块需要注意 1.1 __call__ 方法的返回值是D 阅读全文
posted @ 2017-11-17 11:17 fuzzier 阅读(159) 评论(0) 推荐(0)
摘要:本文参考 HuangHuang 的文章 原文地址 https://segmentfault.com/a/1190000008150517 1 super 1.1 super是一个内置类,可以参考__builtin__中的 super 类 这里主要选取super类创建对象时候主要适用的方法 __new 阅读全文
posted @ 2017-11-14 10:33 fuzzier 阅读(291) 评论(0) 推荐(0)
摘要:1 __init__和__new__的区别 1 当创建一个实例的时候会首先调用__new__, 然后在初始化实例的时候会调用__init__. 2 __new__是类级别的方法,__init__是个实例方法. 3 __new__方法会返回一个创建的实例,而__init__不需要有返回值 2 __ne 阅读全文
posted @ 2017-11-09 22:23 fuzzier 阅读(251) 评论(0) 推荐(0)
摘要:本文主要参考 刘羽冲 的文章,原文地址 点击链接, 原文讲的很生动,我这篇主要做笔记。 1 python的类型衍生 1 type: python所有类型的起源 2 元类 metaclass: 生成类的父 3 类 class: 生成实例的父 4 实例 instance: 对象实例 5 各种方法属性 2 阅读全文
posted @ 2017-11-07 16:01 fuzzier 阅读(176) 评论(0) 推荐(0)
摘要:总的来说python的 magic method 主要是围绕一些类中形如 __xx__ 的样子的方法。 1 构造对象和初始化对象 __new__, __init__ 等 2 控制属性访问 __getattribute__, __setattr__ 等 3 创建对象描述符 __get__, __set 阅读全文
posted @ 2017-09-13 00:02 fuzzier 阅读(615) 评论(0) 推荐(0)