Python 子类继承多个父类属性

  • 可能存在的误区
  • 正确继承方法

可能存在的误区

python允许子类同时继承多个父类。但是在子类初始化父类时,单继承和多继承稍有不同。使用单继承的初始化方法会导致父类属性无法全部继承。
单继承方式是错误的,如下:

class A:def __init__(self):self.a = 'a'class B:def __init__(self):self.b = 'b'class C(A, B):def __init__(self):super().__init__()c = C()
print(c.a)
print(c.b)

能够正确打印出a的值,但是print(c.b)会报错:
AttributeError: ‘C’ object has no attribute ‘b’

正确继承方法

同时继承多个父类时,可以显式的初始化每个父类,并且是用父类名初始化。如下所示:

class A:def __init__(self):self.a = 'a'class B:def __init__(self):self.b = 'b'class C(A, B):def __init__(self):A.__init__(self)B.__init__(self)c = C()
print(c.a)
print(c.b)

Python 子类继承多个父类属性相关推荐

  1. python子类继承父类特性,pycharm上面已经提示继承了,为什么会报没有该特性的错误?

    因为在子类里覆盖了父类的__init__ 如果需要调用父类用super class A(object):def __init__(self):self.a = 1def fun(self):print ...

  2. 在C++中子类继承和调用父类的构造函数方法

    构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...

  3. python子类继承父类属性实例_Python实现子类调用父类的初始化实例

    前言 python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错. 例如以下的代 ...

  4. python子类继承父类属性实例_python – 从子类内的父类访问属性

    在类定义期间,没有任何继承的属性可用: >>> class Super(object): class_attribute = None def instance_method(sel ...

  5. Python 子类继承父类

    1.一个类A继承另一个类B,就表示类A中可以直接调用类B中的内容,可以防止代码冗余. 2.继承的语法: class DerivedClassName(modname.BaseClassName) De ...

  6. python子类继承父类构造函数

    1.在子类中需要父类的构造方法就需要调用父类的构造方法,或者不重写父类的构造方法. 子类不重写 init,实例化子类时,会自动调用父类定义的 init. class Father(object): # ...

  7. Python子类继承父类构造函数说明

    1.子类不重写__init__,实例化子类时,会自动调用父类定义的__init__ class Father(object):def __init__(self, name):self.name = ...

  8. 子类继承多个父类总结

    class Eat {void eat() {print('吃');} }class Sleep {void sleep() {print('睡');} }class Person with Eat, ...

  9. java 父类是抽象类 定义private的属性 子类继承_java继承、多态、接口、抽象类定义及应用...

    继承:关键字extends java 中继承是单继承 允许多个子类继承一个父类,不允许一个子类继承多个父类. 继承是继承父类的所有属性和方法,但并不是所有的属性和方法都可被子类调用: 子类继承父类是必 ...

最新文章

  1. numpy库:常用基本
  2. spring整合jdbc
  3. ajax联系人数,setInterval定时调用ajax实现在线人数统计
  4. MongoDB数据库设计中6条重要的经验法则
  5. jenkins没安装git报错
  6. RabbitMQ有5种工作模式
  7. Nginx 静态文件服务器搭建及autoindex模块解析
  8. python机器学习系列教程——深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras
  9. 基于Go的挑战程序设计竞赛的进化之路①
  10. matlab 频率分辨率,功率谱、频率分辨率、频谱泄漏与窗函数
  11. oracle 12C 静默安装
  12. XML基础复习[整理][转载]
  13. JavaScript的执行机制——作用域链和闭包
  14. Linux常见的压缩工具
  15. 微星主板黑苹果_技嘉X79-UD7主板设置一键启动u盘方法【详解】
  16. bhu1272小希的迷宫
  17. 金蝶BOS8.2 EAS客户端一直初始化解决方案
  18. EXP-00091:Exporting questinable statistics.
  19. 使用windows电脑制作mac启动盘
  20. 基于摄像头的签到系统(考试)(三)----tkinter

热门文章

  1. python坐标转化极坐标_python 坐标系
  2. C#整数相除算百分数
  3. 23种设计模式总结篇【理解及应用】
  4. Linux后台运行Java项目世上最详解
  5. 计算机作业word样文图片,word文档中插入图片学案
  6. __attribute__((weak))
  7. nginx部署https域名
  8. autocad 如何摆正显示_CAD如何快速显示并居中图形
  9. 计算机硬件无法组成部分,电脑硬件有哪些
  10. 「WC2018」通道