当前位置: 首页 > news >正文

Python进阶(5):类与继承

Python支持多继承

在面向对象编程中,被继承的类称为父类或基类,新的类称为子类或派生类。
通过继承不仅可以实现代码的重用,还可以通过继承来理顺类与类之间的关系。在 Python 中,可以在类定义语句中,类名右侧使用一对小括号将要继承的基类名称括起来,从而实现类的继承。

具体的语法格式如下:


class ClassName(baseclasslist):
""类的帮助信息"   # 类文档字符串
Statement    # 类体

ClassName:用于指定类名。
baseclasslist:用于指定要继承的基类,可以有多个,类名之间用逗号“,”分隔。如果不指定将使用所有 Python 对象的根类 object。

""类的帮助信息":用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号“(”后,将显示该信息。
statement:类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用 pass 语句代替。

方法重写

基类的成员都会被派生类继承,当基类中的某个方法不完全适用于派生类时,就需要在派生类中重写父类的这个方法,这和Java 语言中的方法重写是一样的。

派生类中调用基类的 __init__()方法

当在派生类中定义__init__() 方法时,不会自动调用基类的 __init__()方法。如果要让派生类调用基类的__init__() 方法进行必要的初始化,需要在派生类使用 super()函数调用基类的 __init__() 方法。派生类使用基类的构造函数__init__(self)时,必须加上super().前缀

演示程序:InheritSnake.py

class Biology:def __init__(self, name):self.name = namedef show(self):print("【",self.name,"】是一种生物")
class Animal:def __init__(self, name):self.name = namedef run(self):print('Animal【',self.name,'】 is running.')
class Dog(Animal,Biology):  # Dog继承于Animal,也继承于Biology生物,Python支持多继承def run(self):print('Dog【',self.name,'】 is running.')
class Cat(Animal):  # Cat继承于Animaldef __init__(self, name):super().__init__(name)print('派生类使用基类的构造函数__init__(self)时,必须加上super().前缀')def run(self):print('Cat【',self.name,'】 is running.')
animal=Animal("哺乳动物")
animal.run()
animal=Cat("阿猫")
animal.run()
animal=Dog("阿狗")
animal.run()
animal.show()

运行如图:

http://www.lryc.cn/news/608034.html

相关文章:

  • Unity_数据持久化_XML存储相关
  • 探索:Uniapp 安卓热更新
  • 智能合约漏洞导致的损失,法律责任应如何分配
  • 医疗后台管理系统开发实践
  • 分类任务当中常见指标 F1分数、recall、准确率分别是什么含义
  • 通过解决docker network connect实现同一个宿主机不同网络的容器间通信
  • 【stm32】点灯及蜂鸣器
  • 深度学习·mmsegmentation基础教程
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第三天(JavaScript)
  • ospf作业
  • 关于Web前端安全防御之点击劫持的原理及防御措施
  • winscp 连openwrt 返回127错误码
  • Java设计模式之行为型模式(解释器模式)实现方式举例说明
  • 大文件上传:自定义协议
  • 进程 Vs 线程
  • 电路原理图绘制专业实战教程1
  • 深入 Go 底层原理(十五):cgo 的工作机制与性能开销
  • Minimizing Coins(Dynamic Programming)
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • 【转】大模型安全治理的现状与展望
  • 【龙芯99派新世界】buildroot快速使用笔记
  • WPFC#超市管理系统(4)入库管理
  • STM32——启动过程浅析
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • Kubernetes Gateway API 详解:现代流量路由管理方案
  • Flink2.0学习笔记:Stream API 窗口
  • ubuntu 系统风扇控制软件 CoolerControl
  • 关于项目发布中到后半夜的一些总结
  • Maven - 并行安全无重复打包构建原理揭秘
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描