关于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子类调用父类同名属性和方法的讲解 的相关文章

  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • Python setuptools:如何在 setup.py 中添加私有存储库 (gitlab)?

    我上传了 2 个包 它们位于我的 gitlab 存储库中 如果我想使用 pip 将它们安装在我的系统中 这很容易 因为 gitlab 可以帮助您 https docs gitlab com ee user packages pypi rep
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 当我在 Pandas 中使用 df.corr 时,我的一些列丢失了

    这是我的代码 import numpy as np import pandas as pd import seaborn as sns import matplotlib pyplot as plt data pd read csv dea
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 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