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

python - 子类为什么调用父类的方法

菜鸟教程 - 面向对象icon-default.png?t=O83Ahttps://www.runoob.com/python3/python3-class.html为什么写这个呢 ,因为很多时候,事情很简单,但我往往记住了使用方式,忘记了使用原因,也因为自己看到super()时,也想问为什么要用super()

菜鸟教程中有一个继承例子 

#!/usr/bin/python3#类定义
class people:#定义基本属性name = ''age = 0#定义私有属性,私有属性在类外部无法直接进行访问__weight = 0#定义构造方法def __init__(self,n,a,w):self.name = nself.age = aself.__weight = wdef speak(self):print("%s 说: 我 %d 岁。" %(self.name,self.age))#单继承示例
class student(people):grade = ''def __init__(self,n,a,w,g):#调用父类的构函people.__init__(self,n,a,w)self.grade = g#覆写父类的方法def speak(self):print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))s = student('ken',10,60,3)
s.speak()

people.__init__(self,n,a,w)  调用父类的构造函数,此时我的问题是能不能这么写

class student(people):def __init__(self, n, a, w, g):self.name = nself.age = aself.__weight = wself.grade = g# 覆写父类的方法def speak(self):print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade))

这两种写法,运行结果没区别,那为什么要使用 people.__init__(self,n,a,w) 这种写法

回顾一下继承的作用

继承允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。这样可以重用代码,提高代码的模块化和可维护性。

结论:

1. 重用代码意味着子类不需要与父类的属性重复,因此Student 构造函数只需写self.grade = g,那么问题来了,怎么初始化父类的方法,于是有了 people.__init__(self,n,a,w) 调用了父类的构造函数,而且减少了代码,提高模块化

2. 为什么不用第二种方式,因为子类重复定义属性

问题

当然这么使用引发了其他问题,比如 多继承问题

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

相关文章:

  • 【JavaScript】数据结构之字典 哈希表
  • Adobe出现This unlicensed Photoshop app has been disabled
  • elementui 单元格添加样式的两种方法
  • 如何有效管理技术债务:IT项目中的长期隐患
  • 2024 “华为杯” 中国研究生数学建模竞赛(D题)深度剖析|大数据驱动的地理综合问题|数学建模完整代码+建模过程全解全析
  • Linux 清空redis缓存及查询key值
  • MySql调优(三)Query SQL优化(2)explain优化
  • Java【代码 18】处理Word文档里的Excel表格数据(源码分享)
  • 21、Tomato
  • 代码随想录 八股文训练营40天总结
  • Debian 12上安装google chrome
  • Python | Leetcode Python题解之第405题数字转换为十六进制数
  • 定位坐标系
  • 安全通信网络等保
  • 7--SpringBoot-后端开发、原理详解(面试高频提问点)
  • wordpress主题摘要调用显示错误解决办法
  • 【ESP32】ESP-IDF开发 | UART通用异步收发传输器+串口收发例程
  • 2025秋招LLM大模型多模态面试题(六)-KV缓存
  • matlab边缘点提取函数
  • Redis 执行 Lua,能保证原子性吗?
  • 让模型评估模型:构建双代理RAG评估系统的步骤解析
  • RabbitMQ 高级特性——发送方确认
  • 马踏棋盘c++
  • OpenSSH从7.4升级到9.8的过程 亲测--图文详解
  • 系统分析与设计
  • vite 使用飞行器仪表示例
  • 【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室
  • Python 实现Excel XLS和XLSX格式相互转换
  • 黑马智数Day1
  • 网络协议全景:Linux环境下的TCP/IP、UDP