关于Python子类调用父类同名属性和方法的讲解

2023-11-16

//父类

class Person(object):

        def __init__(self):

                self.name = "张三"

                self.age = 30

        def showInfo(self):

                print(self.name)

                print(self.age)

// 子类继承Person类

class Student(Person):      

        def __init__(self):

                self.name = "李四"

                self.age = 20

        def showInfo(self):

                print(self.name)

                print(self.age)

        def __str__(self):

                return "这是Student类的对象"

//子类调用父类同名属性和方法

        def FuInfo(self):

                Person.__init__(self)        //大家先想想这行代码的作用

                print(self)        //该行代码就是为了判断self是否为Student类的对象

                Person.showInfo(self)

s = Student()

s.FuInfo()

上面的代码是一个很简单的单继承,然后就是采用魔法方法__init__()来初始化属性,并通过shoeInfo()函数来打印属性

相信大家都看得懂,那么红色字体的代码为什么要有呢,不要可不可以呢

现在就这个来说明一下:

父类中的属性是“name = "张三",age = 30”,而子类的属性为“name = "李四", age = 20”.假设没有红色那行代码,直接通过Person.showInfo(self)得到的是子类的属性,因为self表示的是调用该函数的对象,即是对象s,而对象s的属性为“name = "李四", age = 20”。所以没有红色那行代码的话得到的结果就是子类的。

有了红色那行代码之后,将self的属性通过Person的__init__()重新初始化为“name = "张三",age = 30”,随后采用Person.showInfo(self)得到的就是父类中的属性值了

总的来说:红色代码的作用就是将对象s的属性值修改为父类的属性值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Python子类调用父类同名属性和方法的讲解 的相关文章

随机推荐

  • JSP学习之初识JSP(实现简单的计算器)

    IE浏览器 gt Tomcat gt 数据库 访问JSP的过程 如果是第一次访问 jsp文件被服务器翻译成一个对应的java文件 Servlet 然后 再被编译成一个 class文件并装载到服务器的内存中 如果以后访问JSP 那就直接调用内
  • vue + ant design vue 项目打包优化

    废话不多说 直接上代码 main js 注释掉 vue 和 antdv Vue use antd 这句话一定不能删除 antd 变量虽然没有定义 但是 是cdn资源里面的模块 一定要引入进来 如果提示 antd 未定义可能是 cdn 资源问
  • CSS基础学习--27 常使用的属性

    一 文本效果 属性 描述 CSS hanging punctuation 规定标点字符是否位于线框之外 3 punctuation trim 规定是否对标点字符进行修剪 3 text align last 设置如何对齐最后一行或紧挨着强制换
  • 应用层与驱动层通信DeviceIoControl

    驱动层与应用层通信是通过DeviceIoControl 符号定义 define DEVICE NAME L Device myDriver Driver Name define SYMBOLIC LINK NAME L DosDevices
  • vue实现给当前元素添加样式,其他元素无样式

    vue实现给当前元素添加样式 其他元素无样式 今天做项目的时候遇到 给当前元素绑定样式 原来使用原生js写点亮盒子的时候都是利用for循环 循环元素列表 在利用this来绑定当前元素 给当前元素添加类名或类样式 当然在添加类样式前 还要将所
  • 把iconfront的资源放cdn访问_详解mpvue小程序中怎么引入iconfont字体图标

    前言 iconfont阿里巴巴矢量图标库是我很喜欢的一个网站 可以下载 在线编辑 上传自己需要的矢量图标 也支持团队协作 那么在mpvue项目中如何引入呢 将图标加入购物车 搜索关键词可以是中文也可以是英文 下载素材 点击网站右上角的购物车
  • C/C++中#pragma once的使用

    在C C 中 为了避免同一个文件被include多次 有两种方式 一种是 ifndef方式 一种是 pragma once方式 在头文件的最开始加入 ifndef SOME UNIQUE NAME HERE define SOME UNIQ
  • 一本二本三本有什么区别

    一本二本三本有什么区别 很多家长和考生问老师 一本二本三本到到底什么区别于老师给大家普及一下 其实一本 二本 三本 无论是学历性质还是学历层次都是一样的 毕业证书除了毕业学校的公章和校长的签章 其他没有任何区别 都是中华人民共和国教育部监制
  • tensorflow中,session.run()与tensor.eval()的区别

    session run 与tensor eval 都是tensorflow用来计算图的一一部分的方法 那么这两种方式有什么异同呢 假设有一个tensor a 在使用a eval时 等价于 sess run 其中 sess是当前默认会话 这这
  • GitHub 开源推荐

    说起 Web 开发 大多数人会想到 Java Python Golang 因为它们的主流 Web 框架有很多 Java 有非常知名的 Spring 全家桶 Python 有大而全的 Django 小而精的 Flask 高性能的 Tornad
  • 最新SQL注入漏洞原理及与MySQL相关的知识点

    点击星标 即时接收最新推文 本文选自 web安全攻防渗透测试实战指南 第2版 点击图片五折购书 SQL注入漏洞简介 SQL注入是指Web应用程序对用户输入数据的合法性没有判断 前端传入后端的参数是攻击者可控的 并且参数被带入数据库查询 攻击
  • 关于linux内核编译时出现错误 objtool: missing symbol table的解决方法

    在内核编译时出现了objtool missing symbol table的错误导致编译失败上网找了一圈之后找到下面的方法 新建一个文件thunkpatch patch填入 tools objtool elf c 7 1 file chan
  • 西门子S7-200 SMART编程软件下载

    概述 西门子S7 200 SMART是一款入门级且非常好用的PLC 相比较于欧姆龙 三菱等同级别PLC SMART的编程软件架构更合理且逻辑性强 且官方一直在持续更新 截止于2021年8月 官方最新版编程软件 STEP7 MicroWIN
  • C#读取文件时中文显示问号

    StreamReader reader new StreamReader test txt Encoding Default string str reader ReadToEnd Console WriteLine str reader
  • 音视频大牛雷霄骅

    https blog csdn net leixiaohua1020 https www zhihu com question 49211380 https www bilibili com video av9927626 share so
  • volatile 与处理器的嗅探技术

    在 java并发编程的艺术 这本书中 关于volatile的内存原理本质的描述如下 有volatile变量修饰共享变量在编译器编译后 后多出一个 lock 来 lock前缀指令相当于一个内存屏障 会强制将对缓存的修改操作写入主内存 该字符在
  • DAPM之二:audio paths与dapm kcontrol

    在用alsa amixer controls时 除了我们之前提到的snd soc add controls添加的kcontrols外 还有一些多出来的controls 其实多出来的那些都是属于dapm kcontrol 主要用于切换音频路径
  • 【Antlr】rule expr: must label all alternatives or none

    1 背景 写了一个antlr 语法文件 如下 报错 grammar FunctionGrammar root stat stat expr printExpr ID assign expr ID
  • java经典笔试题大全(50道含答案)

    java经典笔试题大全 50道含答案 整理了一套常用的Java笔试题 选择题50道 简答题5道 试试你能做对多少题吧 含答案 选择题 共50题 每题1 5分 共75分 多选题选不全或选错都不得分 1 以下属于面向对象的特征的是 C D 两项
  • 关于Python子类调用父类同名属性和方法的讲解

    父类 class Person object def init self self name 张三 self age 30 def showInfo self print self name print self age 子类继承Perso