当前位置: 首页 > 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. 为什么不用第二种方式,因为子类重复定义属性

问题

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

相关文章:

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

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

【JavaScript】数据结构之字典 哈希表

字典 键值对存储的,类似于js的对象,但在js对象中键[key]都是字符串类型或者会转换成字符串类型,因此后声明的键值会覆盖之前声明的值。字典以map表示,map的键不会转换类型。 let map new Map() map.set(a, 1) map.set(b, 2) ma…...

Adobe出现This unlicensed Photoshop app has been disabled

Adobe Acrobat或Photoshop软件突然出现This unlicensed Photoshop app has been disabled 症状 解决方法 删除软件安装目录下的AcroCEF和acrocef_1l两个子文件夹。主要是为了删除AcroCEF.exe。 如果存在复发,则删除xxxxxxx\AdobeGCClient\AdobeGCClient.exe。 不…...

elementui 单元格添加样式的两种方法

方法一 <el-table-column fixed prop"name" label"姓名" width"120"> <<template scope"scope"> <span :class"{red:scope.row.color1,yell:scope.row.color2,green:scope.row.col…...

如何有效管理技术债务:IT项目中的长期隐患

如何有效管理技术债务&#xff1a;IT项目中的长期隐患 在软件开发和IT项目管理中&#xff0c;技术债务&#xff08;Technical Debt&#xff09;是一个经常被忽视却又至关重要的概念。技术债务就像金融债务一样&#xff0c;当我们在项目开发中选择了某些“捷径”来快速交付&…...

2024 “华为杯” 中国研究生数学建模竞赛(D题)深度剖析|大数据驱动的地理综合问题|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; CS团队倾注了大量时间和心血&#xff0c;深入挖掘解…...

Linux 清空redis缓存及查询key值

1.登录redis redis-cli -h 127.0.0.1 -p 6379# 如果有密码需要下面这一步 auth 你的密码直接带密码登录 redis-cli -h 127.0.0.1 -p 6379 -a 密码出现ok表示登录成功 2.标题查看所有key keys *3.查看某个key 的值 get keyName4.清空整个Redis服务器的数据 flushall5.查看…...

MySql调优(三)Query SQL优化(2)explain优化

explain执行计划出现以下情况&#xff0c;均需要优化&#xff1a; 一、Using temporary 查询执行过程中出现Using temporary提示&#xff0c;通常意味着MySQL需要创建一个临时表来存储中间结果。这种情况多发生在数据库优化器无法通过现有的索引直接有效地执行查询时&#xf…...

Java【代码 18】处理Word文档里的Excel表格数据(源码分享)

处理Word文档里的Excel表格数据 1.原始数据2.处理程序2.1 识别替换表格表头2.2 处理多余的换行符2.3 处理后的结果 3.总结 1.原始数据 Word 文档里的 Excel 表格数据&#xff0c;以下仅为示例数据&#xff1a; 读取后的字符串数据为&#xff1a; "姓名\r\n身份证号\r\n手…...

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务&#xff0c;2211实际是ssh协议端口&#xff0c;80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…...

代码随想录 八股文训练营40天总结

参加训练营的话也是给自己一定的约束力&#xff0c;让自己能够定期去对八股文进行一个背诵&#xff0c;虽然说中间有几天放假&#xff0c;没有进行打卡外&#xff0c;还是比较完整的坚持下来了。 从计算机网络--操作系统--MySQL--Redis--C基础&#xff0c;虽然这些知识都有看过…...

Debian 12上安装google chrome

当前系统&#xff1a;Debian 12.7 昨天在Debian 12.7上安装Google Chrome时&#xff0c;可能由于网络原因&#xff0c;导入公钥始终失败。 导致无法正常使用命令#apt install google-chrome-stable来安装google chrome; 解决办法&#xff1a; Step1.下载当前google chrome稳…...

Python | Leetcode Python题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; CONV "0123456789abcdef" class Solution:def toHex(self, num: int) -> str:ans []# 32位2进制数&#xff0c;转换成16进制 -> 4个一组&#xff0c;一共八组for _ in range(8):ans.append(num%16)num // 16if not num:b…...

定位坐标系

定位坐标系是地理空间信息系统中用于确定物体位置的重要工具&#xff0c;它基于数学和物理原理&#xff0c;通过一系列参数来描述物体在地球或其他天体表面的位置。以下是对定位坐标系的详细解析&#xff1a; 一、定义与分类 定位坐标系是根据一定的规则和方法&#xff0c;将…...

安全通信网络等保

通用要求 1.网络架构 1)应保证网络设备的业务处理能力满足业务高峰期需要。 设备CPU和内存使用率的峰值不大于设备处理能力的70%。 在有监控环境的条件下,应通过监控平台查看主要设备在业务高峰期的资源(CPU、内存等)使用 情况;在无监控环境的情况下,在业务高峰期登录…...

7--SpringBoot-后端开发、原理详解(面试高频提问点)

目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方&#xff1a; 在pom.xml中依赖配置比较繁琐&#xff0c;在项目开发时&#xff0c;需要自己去找…...

wordpress主题摘要调用显示错误解决办法

如果你的wordpress主题使用了 mb_strimwidth(strip_tags(apply_filters(the_content, $post->post_content)), 0, 360, …); 这样的方式调用内容摘要 如果在主题摘要调用的地方显示错误&#xff0c;导致这个错误的原因是php没有开启&#xff1a;mbstring 开启mbstring的…...

【ESP32】ESP-IDF开发 | UART通用异步收发传输器+串口收发例程

1. 简介 UART可以说是开发者使用得最多的外设之一了&#xff0c;打印log几乎都是使用串口来实现的。UART是一种异步全双工的通信方式&#xff0c;异步传输的特性使得它仅需2根线就可以完成全双工的传输&#xff0c;但这也要求发送端和接收端的速率、停止位、奇偶校验位等都要相…...

2025秋招LLM大模型多模态面试题(六)-KV缓存

目录 为什么Transformer推理需要KV缓存?KV缓存的具体实现 没有缓存的情况下使用缓存的情况下KV缓存在解码中的阶段划分 Prefil阶段Decoding阶段KV缓存的存储类型及显存占用计算KV缓存的局限与优化策略 超长文本与复杂模型场景下的瓶颈量化方案的应用量化方案的副作用与优化方法…...

matlab边缘点提取函数

1、边缘提取 matlab自带点云边缘提取函数,用于搜索点云边界,其核心是alpha shapes算法。alpha shapes提取边缘点,主要是依据滚动圆绕点云进行旋转,实现边缘检测,原理如下图所示。具体原理及效果,可以参考之前我写的博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客…...

Gated DeltaNet 线性注意力:揭秘大模型算力魔咒的破局之道!

文章深入探讨了线性注意力机制在大模型中的重要性&#xff0c;特别是Gated DeltaNet如何通过改变运算顺序&#xff0c;将Transformer的注意力计算复杂度从平方级降低到线性级&#xff0c;从而打破算力瓶颈。文中对比了阿里Qwen、Kimi Linear等模型的线性架构应用&#xff0c;以…...

Pixel Couplet Gen实战案例:某AI开发者大会现场扫码生成像素春联纪念品

Pixel Couplet Gen实战案例&#xff1a;某AI开发者大会现场扫码生成像素春联纪念品 1. 项目背景与创意来源 1.1 传统与创新的碰撞 在2024年某AI开发者大会现场&#xff0c;我们推出了一款名为"Pixel Couplet Gen"的互动装置。这款产品将中国传统春节文化与现代AI技…...

TCC性能瓶颈到底卡在哪?:用Arthas+Metrics精准定位4大隐性耗时源并实测压降67%

第一章&#xff1a;TCC性能瓶颈到底卡在哪&#xff1f; TCC&#xff08;Try-Confirm-Cancel&#xff09;模式虽能保障分布式事务的强一致性&#xff0c;但其性能损耗远高于本地事务——根本原因并非网络延迟本身&#xff0c;而是其固有的三阶段协同机制与资源生命周期管理带来的…...

告别外挂EEPROM:手把手教你用AUTOSAR Fee模块在MCU内部Flash存数据(附Vector DaVinci配置)

告别外挂EEPROM&#xff1a;用AUTOSAR Fee模块实现MCU内部Flash数据存储实战指南 在汽车电子控制单元&#xff08;ECU&#xff09;开发中&#xff0c;非易失性数据存储一直是硬件选型的重要考量点。传统方案往往需要外挂一颗EEPROM芯片来存储参数、标定值和故障码等关键数据&am…...

AI赋能.NET开发:让快马平台智能生成Redis缓存与消息队列集成代码

最近在做一个电商系统的订单模块&#xff0c;发现缓存和消息队列这两个组件几乎是标配。但每次从零开始集成Redis和RabbitMQ都要查半天文档&#xff0c;配置各种连接字符串&#xff0c;写一堆样板代码。直到尝试用InsCode(快马)平台的AI辅助功能&#xff0c;才发现原来这些重复…...

AI 搜索时代,GEO 为何成为企业数字化营销的新标配?

当生成式 AI 全面渗透搜索场景&#xff0c;用户获取信息的方式从 “主动检索筛选” 转向 “AI 精准回答推荐”&#xff0c;传统 SEO 的流量逻辑正在被彻底重构&#xff0c;GEO&#xff08;AI 搜索生成引擎优化&#xff09;已然成为企业营销的新赛道。在 AI 搜索成为用户信息获取…...

如何选择ComfyUI-FramePackWrapper的模型加载方案?从技术选型到场景适配全解析

如何选择ComfyUI-FramePackWrapper的模型加载方案&#xff1f;从技术选型到场景适配全解析 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频生成工作流中&#xff0c;模型加载是影响效率与稳…...

AI数字人开源方案:Duix.Avatar本地化部署与应用指南

AI数字人开源方案&#xff1a;Duix.Avatar本地化部署与应用指南 【免费下载链接】Duix-Avatar &#x1f680; Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Trending…...

新手友好:在快马平台通过可交互代码学习OpenClaw Onboard抓取基础

今天想和大家分享一个特别适合机器人领域新手的实践项目——通过InsCode(快马)平台学习OpenClaw Onboard框架的基础操作。作为一个刚接触机械臂控制的小白&#xff0c;我发现这个平台能直接把抽象的控制概念变成可交互的代码&#xff0c;学习效率提升了好几倍。 项目环境搭建零…...

Ansible Playbook在JumpServer中的高级用法:自动化运维效率提升技巧

Ansible Playbook在JumpServer中的高阶实战&#xff1a;效率倍增的自动化运维策略 开篇&#xff1a;当堡垒机遇上自动化运维 想象一下这样的场景&#xff1a;凌晨三点&#xff0c;服务器突然告警&#xff0c;传统运维需要手动登录每台机器检查状态&#xff0c;而熟练使用Ansibl…...