在python里面运用多继承方法详解


Posted in Python onJuly 01, 2019

如何在PYTHON里面运用多继承

class Father:

  def hobby(self):

    print("love to play video game.")

    

class Mother:

  def cook(self):

    print("love to cook anything.")

 

#比如说有两个类,如果想要一个子类同时继承这两个类,应该怎么操作呢。

在python里面运用多继承方法详解

class Father:

  def hobby(self):

    print("love to play video game.")

    

class Mother:

  def cook(self):

    print("love to cook anything.")

    

class Son(Father, Mother):

  pass




son = Son()

son.hobby()

son.cook()

#只要在子类名称的后面加入两个父类,就可以进行多继承了。

在python里面运用多继承方法详解

class Father:

  def hobby(self):

    print("love to play video game.")

  def cook(self):

    print("love to cook anything.")    

class Mother:

  def cook(self):

    print("love to cook anything.")

  def hobby(self):

    print("love to play video game.")

    

class Son(Father, Mother):

  pass




son = Son()

son.hobby()

son.cook()

#但是如果子类继承的时候,发现两个父类的方法都是一模一样的,那就没法同时继承两人的了。

在python里面运用多继承方法详解

class Father:

  def hobby(self):

    print("love to play video game.")

  def cook(self):

    print("love to cook anything.")    

class Mother:

  def cook(self):

    print("love to cook anything.")

  def hobby(self):

    print("love to play video game.")

    

class Son(Mother, Father):

  pass




son = Son()

son.hobby()

son.cook()

#即使我们把位置调换了一下也是比较难看出究竟继承了谁。

在python里面运用多继承方法详解

print(Son.__mro__)

#实际上我们可以用mro来查看顺序,首先是子类,然后是母亲,接着是父亲,这是根据书写顺序的,最后就是object了。

在python里面运用多继承方法详解

class AAA(object):

  pass




aaa = AAA()

dir(aaa)

#我们可以查看object类里面有什么方法。

在python里面运用多继承方法详解

class AAA:

  pass




aaa = AAA()

dir(aaa)

#如果没有基类,一般还是要在后面加上object,这里PYTHON3,所以有加和没加没有区别,但还是建议要加上。

在python里面运用多继承方法详解

Python多继承实例扩展:

多继承的使用

#1.多继承:子类有多个父类
 
class Human:
  def __init__(self, sex):
    self.sex = sex
 
  def p(self):
    print("这是Human的方法")
 
 
class Person:
  def __init__(self, name):
    self.name = name
 
  def p(self):
    print("这是Person的方法")
 
  def person(self):
    print("这是我person特有的方法")
 
 
class Teacher(Person):
  def __init__(self, name, age):
    super().__init__(name)
    self.age = age
 
 
class Student(Human, Person):
  def __init__(self, name, sex, grade):
    #super().__init__(name) #注意:对于多继承来说,使用super只会调用第一个父类的属性方法
    #super().__init__(sex) #要想调用特定父类的构造器只能使用父类名.__init__方式。如下:
 
    Human.__init__(self,sex)
    Person.__init__(self,name)
    self.grade = grade
 
 
class Son(Human, Teacher):
  def __init__(self, sex, name, age, fan):
    Human.__init__(self, sex)
    Teacher.__init__(self, name, age)
    self.fan = fan
 
 
# ------创建对象 -------------
stu = Student("tom", "male", 88)
print(stu.name,stu.sex,stu.grade)
stu.p() # 虽然父类Human和Person都有同名P()方法 ,但是调用的是括号里的第一个父类Human的方法
 
 
son1 = Son("jerry", "female", 18, "打球")
son1.person() # 可以调用父类的父类的方法。
son1.p() # 子类调用众多父类中同名的方法,按继承的顺序查找。
=====================================================================================
tom male 88
这是Human的方法
这是我person特有的方法
这是Human的方法

以上就是关于Python里多继承的知识点总结,感谢大家的阅读和对三水点靠木的支持。

Python 相关文章推荐
Python实现分割文件及合并文件的方法
Jul 10 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
Python实现的排列组合计算操作示例
Oct 13 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
Python中dict和set的用法讲解
Mar 28 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 Python
Python使用re模块验证危险字符
May 21 Python
详解python tcp编程
Aug 24 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 #Python
用python打印1~20的整数实例讲解
Jul 01 #Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 #Python
python实现列表的排序方法分享
Jul 01 #Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 #Python
Python中字符串List按照长度排序
Jul 01 #Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 #Python
You might like
百度地图API使用方法详解
2015/08/25 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
vue请求数据的三种方式
2020/03/04 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
python 常见的排序算法实现汇总
2020/08/21 Python
css3 transform属性详解
2014/09/30 HTML / CSS
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
名人演讲稿范文
2013/12/28 职场文书
教师业务学习制度
2014/01/25 职场文书
企业标语大全
2014/07/01 职场文书
交通事故代理词范文
2015/05/23 职场文书
付款证明模板
2015/06/19 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android