5.多继承

多继承
  子类可以拥有多个父类,并且具有所有父类的属性和方法
  多继承可以让子类对象同时具有多个父类属性和方法
语法:
 
 
多继承的注意事项
  如果不同的父类中有存在同名的方法或属性,应该尽量避免使用多继承
  多个父类存在同名属性或方法时,按MRO搜索顺序会调用第一个父类的同名方法或属性,后继承父类的同名方法或属性不会调用
 
python中的MRO --方法搜索顺序
  python中针对类提供了一个内置属性,__mro__可以查看方法的搜索顺序
  MRO是method resolution order ,注意用于多继承时判断方法、属性的调用露肩
 
格式:
print(类名.__mro__)
 
在搜索方法时,是按照__mro__的输出结果,从左到右的顺序查找的
如果在当前类中找到方法,就直接执行,不再搜索
如果没有找到,就查找下一个类中是否有对应方法,如果找到就执行,不在搜索
如果找到最后一个类的时,还没有找到方法,程序报错
 
新式类与旧式(经典)类
  新式类:以object为基类的类,推荐使用
  旧式类:不以object为基类的类,不推荐使用
  object是python为所有对象提供的基类,提供一些内置的属性和方法,可以使用dir函数查看
  object的内置属性和方法:
 
 
在python3.x中定义类的时候,如果没有指定父类,会默认使用object作为该类的基类,python3.x中定义的类都是新式类
在python2.x中定义类时,如果没有指定父类,则不会以object作为基类
为了保证编写的代码可以同时兼容2.x和3.x运行
在定义类的时候,如果没有父类,建议统一继承object
 

作者:木子七

出处:https://www.cnblogs.com/Mickey-7/p/14421850.html

posted @   木子七  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
workspaces
keyboard_arrow_up dark_mode palette
选择主题