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

接口和协议

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

猴子补丁

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

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

子类化内置类

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

多重继承

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

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

多重继承处理

相关推荐
不会代码的小猴41 分钟前
C++的第九天笔记
开发语言·c++·笔记
专注于大数据技术栈1 小时前
java学习--枚举(Enum)
java·学习
我命由我123452 小时前
开发中的英语积累 P19:Inspect、Hint、Feedback、Direction、Compact、Vulnerability
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
老王熬夜敲代码3 小时前
C++中的thread
c++·笔记·面试
qq_12498707533 小时前
基于SpringBoot学生学习历史的选课推荐系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·学习·毕业设计·毕设
崇山峻岭之间4 小时前
C++ Prime Plus 学习笔记033
c++·笔记·学习
暗然而日章4 小时前
C++基础:Stanford CS106L学习笔记 7 类
c++·笔记·学习
思成不止于此4 小时前
【MySQL 零基础入门】DDL 核心语法全解析:数据库与表结构操作篇
数据库·笔记·学习·mysql
学编程的闹钟4 小时前
86【CSS的模块化处理】
学习
lkbhua莱克瓦244 小时前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流