Python程序设计任务驱动式教程-8.2 统计学生 成绩 方法和属性_第1页
Python程序设计任务驱动式教程-8.2 统计学生 成绩 方法和属性_第2页
Python程序设计任务驱动式教程-8.2 统计学生 成绩 方法和属性_第3页
Python程序设计任务驱动式教程-8.2 统计学生 成绩 方法和属性_第4页
Python程序设计任务驱动式教程-8.2 统计学生 成绩 方法和属性_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容提要定义学生类——类和对象统计学生成绩——方法和属性站在巨人的肩膀上——继承实例

学生信息管理系统统计学生成绩—方法和属性统计学生成绩。编写程序,封装一个学生类,要求属性包含姓名、年龄、性别、英语成绩、数学成绩、语文成绩。方法包含求总分,平均分,以及打印学生的信息。【任务分析】【任务实现】该问题是统计学生信息,要统计的信息包括学生的姓名、年龄、性别、三门课程的成绩,以及计算出总分和平均成绩,显然可以定义一个Student类,并设计类的方法SumSdt、MeanSdt和InSdt,最后完成调用。首先在Student类中定义__init__初始化方法,该方法将自动运行不需要专门去调用。然后定义SumSdt、MeanSdt和InSdt三个方法。再通过调用类的方法实现访问。【任务描述】代码实现:classStudent(object):def__init__(self,name,age,gender,Escore,Mscore,Cscore):=nameself.age=ageself.gender=genderself.Escore=Escoreself.Mscore=Mscoreself.Cscore=CscoredefSumSdt(self):sumsdt=self.Cscore+self.Mscore+self.Escorereturnsumsdt

defMeanSdt(self):meansdt=self.SumSdt()/3returnmeansdt

统计学生成绩——方法和属性defInSdt(self):print('学生姓名:',)print('学生年龄:',self.age)print('学生性别:',self.gender)print('学生英语成绩:',self.Escore)print('学生数学成绩:',self.Mscore)print('学生语文成绩:',self.Cscore)print('总成绩:',self.SumSdt())print('平均成绩:',self.MeanSdt())student=Student('Tom',22,'M',88,76,95)student.InSdt()类中的变量称为属性,是类的数据结构中保存不同类型数据的方式,用户创建的变量可分为普通变量和静态变量。用户自定的类都继承于一个系统定义的基类,因此任何类所含有基类的属性,在Python中称为内置变量。属性按面向对象概念分类:(1)属性有私有属性(2)保护属性(3)公共属性(1)类属性与对象属性类属性就是类的所有对象共享的属性,定义在类中(所有方法之外)。公有的类属性可以在类外通过类名或对象访问。对象属性要定义在方法之中,且有对象名前缀(通常为self),只能通过对象名访问。举例:类的属性和对象属性实例classStudent(object):#类的属性count=0def__init__(self,name):=name#方法的属性Student.count+=1sdt1=Student('Bob')sdt2=Student('Tom')sdt3=Student('Frank')print('共有%d个学生。'%Student.count)属性(2)公有属性和私有属性Python中,私有属性的标识符名称是以两个下划线开头的,公有属性则没有下划线。类的私有属性一般只在类的内部使用,而公有属性没有限制。在类的外部使用时,需要采用以下的格式调用:类名(对象名)._类名__私有属性名举例:类的公有属性和私有属性使用实例classStudent(object):def__init__(self,name,idcard,score):=nameself.id=idcardself.__score=scoredefscore(self):#通过方法间接使用对象的私有属性returnself.__scores1=Student('张三',1,98)print()print(s1.score())属性和面向对象中的函数不同,在类中定义的函数称为方法。通过方法,让类这种数据结构具有“运动”的特征,即类不仅可以保存数据,还可以操作处理数据,其中操作处理数据就是通过类中方法实现。类中的方法可分为普通方法、类方法、静态方法和类自带方法(即内置方法)四种。方法(1)公有方法与私有方法公有方法无需特别声明,私有方法的名字以两个下划线开头。每个对象都有自己的公有方法和私有方法,都可以访问属于类和对象的成员。公有方法可以通过对象直接调用,如果以类的方法调用,公有方法和私有方法需以参数的方式传入一个对象。类名.公有方法名(对象名)私有方法可以通过以下方法调用:对象名._类名__私有方法名()或类名._类名__私有方法名(对象名)方法举例:公有方法和私有方法实例classMethods:defpublicMethod(self):return"公有方法"def__privateMethod(self):return"私有方法"m=Methods()print("以对象的方式调用公有方法:",m.publicMethod())print("以类的方式调用公有方法:",Methods.publicMethod(m))print("以对象的方式调用私有方法:",m._Methods__privateMethod())print("以类的方式调用私有方法:",Methods._Methods__privateMethod(m))方法(2)类方法和静态方法类方法定义,可以用@classmethod指令的方式定义;静态方法的定义,可以用@staticmethod指令的方式来定义。类方法和静态方法都可以通过类名和对象名进行调用,但不能直接访问属于对象的成员,只能访问属于类的成员。一般用cls作为类方法的第一个参数,也可以用其他名称,调用类方法时不需要为该参数传递参数。方法举例:类方法和静态方法实例classTest(object):hello_world="Hellowworld!"def__init__(self,arg=None):super(Test,self).__init__()self.arg=argdefsay_hello(self):print("helloworld")@staticmethoddefsay_bad():print("saybad")@classmethoddefsay_good(cls):print("saygood")print(cls.hello_world)#cls.say_hello()cls.say_bad()defmain():test=Test()test.say_hello()#直接类名.方法名()来调用Test.say_bad()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论