Python类和对象二(十一)

构造函数:

重写:

通过类名访问类里面的方法的做法,称为调用未绑定的父类方法,他有时候会产生钻石继承问题:

发现A重复初始化了两次,类c同事继承类B1和B2,类B1和B2又是继承类A的,当c调用类B1和类B2的构造函数的时候,类A会被调用两次

如何解决钻石继承问题呢?通过使用super函数:super能够在函数中搜索指定的方法,并自动绑定好self参数

通过super函数,去查找父类的方法,自动会按照mro的顺序,去搜索父类的相关方法,避免重复调用的问题,mro顺序就是:如果出现同名的属性和方法,py会有一个明确的查找覆盖顺序,这个顺序有一个官方的术语叫做mro

Min-In:后期添加某个功能

多态:

见机行事的行为称为多态:

这几个对象都继承Shape类,他们都重写了构造函数和area方法,这个就是多态的体现

自定义函数是如何实现多态接口的:animal函数具有多态性了,该函数接受不同的对象作为参数,并且不检查类型的情况下执行他的方法

鸭子类型:

相关推荐
DogDaoDao10 小时前
【第 05 篇】Python的字典与集合
开发语言·python·集合·字典
涛声依旧-底层原理研究所11 小时前
混合检索 + 重排:让 AI Agent 拥有「既全又准」的认知骨架
人工智能·python
努力写A题的小菜鸡11 小时前
01-PyTorch加载数据初认识(dataset运用)
人工智能·pytorch·python
abcy07121311 小时前
python fastapi celery hdfs 异步上传
python·hdfs·fastapi
Dxy123931021611 小时前
Python多线程如何操作全局变量:从踩坑到最佳实践
python
SilentSamsara11 小时前
RAG 系统入门:LangChain/LlamaIndex + Chroma 向量数据库的检索增强实战
数据库·人工智能·python·青少年编程·langchain
码云骑士11 小时前
06-Python装饰器从入门到源码(上)-闭包与自由变量
开发语言·python
码云骑士11 小时前
10-Python运行时内存模型-栈帧-堆-引用计数-GC分代回收的全景图
开发语言·python
码云骑士11 小时前
02-Python可变对象与不可变对象(上)-赋值陷阱与函数传参的暗坑
开发语言·python