流畅的python-学习笔记_协议+继承优缺点

接口和协议

python动态语言,没有interface等概念,接口和协议方法有的也有替代品,所以类似于鸭子类型,只关注行为像鸭子,不关注它是不是鸭子。不是每个接口都得实现,这是允许的

猴子补丁

可动态给对象添加新方法,又不改变对象源代码,这种方法叫 猴子补丁。它会使代码更耦合

应该少用isinstance,而是用多态,分配给对应的处理

子类化内置类

即从自定义class继承于内置类型会有问题,因为派生子类的特殊方法,解释器不一定会调用你的方法,会导致问题。这类内置类不便于扩展,有专门用于扩展的类,可以继承这些类

多重继承

菱形继承时,py会有自己的方法查找顺序,这个顺序叫MRO,Method Resolution Order,可以通过类的__mro__方法访问mro

多继承类声明顺序也会影响mro

多重继承处理

相关推荐
喝醉酒的小白1 小时前
Elasticsearch 故障分析笔记:Pending Tasks 堆积与 Alias 风暴
笔记·elasticsearch
Cathy Bryant1 小时前
微分几何:曲面与坐标系
笔记·矩阵·高等数学·物理学·微分几何
jiayong231 小时前
第 38 课:任务列表里高亮当前正在查看详情的任务
开发语言·前端·javascript·vue.js·学习
中屹指纹浏览器1 小时前
2026浏览器指纹追踪的合规边界与隐私优先的反检测技术落地框架
经验分享·笔记
阿Y加油吧1 小时前
算法实战笔记:LeetCode 31 下一个排列 & 287 寻找重复数
笔记·算法·leetcode
就叫飞六吧1 小时前
基于googleshell下载文件/资源
笔记
lwf0061642 小时前
逻辑回归学习笔记-数学直接解回归方程
笔记·学习·逻辑回归
weixin_qq_163951363 小时前
hypermill五轴后处理制作需要学习哪些知识点
学习·ug
wsjsf3 小时前
智能代码审查助手的搭建
java·学习·ai编程
xuhaoyu_cpp_java3 小时前
MyBatis学习(二)
java·经验分享·笔记·学习·mybatis