首页 > 编程语言 >Python中类的使用4

Python中类的使用4

时间:2024-08-22 17:23:03浏览次数:16  
标签:__ Python 子类 Student 使用 父类 方法 中类 属性

在Python中,如果要编写的类是另一个类的特殊版本,可以使用继承。一个类A继承另一个类B,类A将自动获得类B的所有属性和方法,类B叫做父类,而类A叫做子类。假设有一个类是表示“人”的类,而另一个类是表示“学生”的类,因为“学生”是“人”的特殊版本,因此可以把表示“人”的类当作父类,表示“学生”的类当作子类。

1 定义父类

对于“人”来说,应该具有“姓名”和“年龄”两个属性,另外还具有一个显示自己属性的方法,代码如图1所示。

32e5b5b6d23445b7b20a4fb55f1a3d76.png

图1 定义父类

其中,People类具有两个属性,分别是name和age;具有一个方法,是showpeople(),该方法的作用是显示人的姓名和年龄。

2 定义子类

对于“学生”是“人”的特殊版本,除了具有人的“姓名”和“年龄”属性之外,还具有“学号”和“成绩”两个特殊属性。另外还具有一个显示自己属性的方法,代码如图2所示。

0e7775c318394b3b9824ab822cfc9135.png

图2 定义子类

图2中定义了名为Student的类,在类名后的圆括号中指定了其父类为People。

在创建子类实例时,Python首先要完成的任务是给父类的所有属性赋值。因此,如图2中所示的子类__init__()方法中,首先通过super()方法获取其父类,之后调用其父类的__init__()方法为其父类的属性赋值;之后定义了自己的两个特殊属性num和score并进行赋值;showstudent()方法的作用是显示子类的四个属性,这四个属性包括子类的两个特殊属性num、score和从父类继承过来的两个属性name、age。

3 使用子类

通过图3所示代码实例化子类,并通过该实例调用父类和子类的方法。

ade475dfa67842ad91dc776bb843703d.png

图3 使用子类的代码

stu是Student类的实例,通过该实例调用了People类的showpeople()方法和Student类的showstudent()方法,输出的信息如图4所示。

05c1306c23464e579a03739478f29783.png

图4 输出信息

从图4中可以看出,Student类继承了其父类People的showpeople方法,因此可以通过stu调用该方法。

 

标签:__,Python,子类,Student,使用,父类,方法,中类,属性
From: https://blog.csdn.net/hou09tian/article/details/141431267

相关文章

  • python3脚本批量重命名歌曲文件
    场景:歌曲文件名有些混乱 于是想用个脚本批量重命名这些歌曲文件,可以选择【歌曲名-歌手】或【歌手-歌曲名】规范这些文件名脚本如下:importosimportrefrommutagen.id3importID3,TIT2,TPE1frommutagen.mp4importMP4#替换后歌手分隔符REPLACEMENT_STRING......
  • [C++]括号使用小技巧
    1.前言  对于一般的赋值语法,例如inta=0;  但你知道吗?使用括号可以同时写很多类型,编译器一般默认括号内最后一个类型为赋值类型,例如//编译器会选择最后一位进行赋值inta=(100,200,300,0);  此时,a的值就是0。2.改变函数返回值  有如下三个函数,返回值类型分别......
  • 【整理快速通道】python语法import速查
    这段文字是特意发送在除了CSDN以外的其他网站的,如果这段文字出现在CSDN里面,则说明该账号为抄袭账号,关键字索引:抄袭千思的文章目录正文文件夹结构模块调用包内模块1.import2.from...import...3.import...as4.from...import*(不推荐)同级两个模块导入from...import动态导入try.......
  • diff.js+diff2html-ui.js 使用实例
    <!DOCTYPEhtml><htmllang="zh"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>文件差异对比</title>&......
  • EF Core使用SharedTypeEntity,映射实体类到不同的数据库表(转载)
    我们可以借助EFCore的SharedTypeEntity,映射一个实体类到多个结构相同的数据库表:publicclassUser{publicintId{get;set;}publicstringName{get;set;}}publicclassSomeDbContext:DbContext{protectedoverridevoidOnConfiguring(DbConte......
  • vant3升级vant4后,使用Toast、Dialog报样式不存在异常解决方法
    异常现象:vant3升级vant4,直接采用v4的方法使用showToast/showDialog,但直接就报错了,如下:[vite]Internalservererror:Failedtoresolveimport"E:/git_sh/project_code/node_modules/vant/es/show-confirm-dialog/style"from"src\service\index.ts".Doesthefile......
  • 使用SVN服务器和GIT服务器管理同一个项目
    1. 背景软件发布版本代码需要提交公司SVN,中间开发环节代码管理采用Git,同一套代码需要同时在两个服务器间进行同步。 2. 解决方案方案1:SVN与Git共存,该方案需要手动同步本地代码、SVN服务器代码、Git服务器代码;方案2:SVN作为Git的远程分支,该方案在库搭建完成后,可以使用git自......
  • python对于pyinstaller使用的一些随记
    1.虚拟环境中需要安装对应的pyinstaller  pipinstallpyinstaller(该命令后会安装pyinstaller和pyinstaller-hooks-contrib)注意:如果在当前环境下没有pyinstaller,则会在本机电脑的环境变量中的path中去寻找,如果没有则报错。      此处设置可参考:https://blog.csdn.......
  • Python 实现批量数字二维码生成器
    Python实现批量数字二维码生成器创建时间:2024-08-09一、背景手动逐个生成特定格式和内容的二维码是一项繁琐且耗时的任务。虽然有写二维码工具也可以制作,但是往往有一些限制,为了能够高效、批量生成自定义二维码的需求,开发了这个基于Python的数字二维码生成器应用程序。在实......
  • 使用mydumper 对大数据库备份
    最近需要备份一个库,1.1T,最大的表45G,使用常用的mysqldumper备份的时候,调整各种mysql参数配置都一直报Lostconnectionmysqldump--databasesedm-hlocalhost--triggers--routines--events-P3306-u*********-p*********--quick--max_allowed_packet=512M--skip-lock-ta......