7.1.3 成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 15页
| 32人阅读
| 4人下载
普通

内容正文:

任务7.1 对象与类 电影对象的定义和使用 7.1 对象与类——电影对象的定义和使用 【任务描述】 优秀的影片 可以鼓舞人心,带给人积极向上的心态。小T酷爱看电影,他从某影评网站收集了几部评价较高、他也较感兴趣的国产电影信息(包括电影名、导演、主演等字段)。他打算一周之内把这几部电影看完,并在看完之后对每部影片进行评分。要求输出已看电影的评分、已看电影部数、已评电影的均分,并释放已看过的电影资源。 7.1 对象与类——电影对象的定义和使用 【任务分析】 我们可以构建电影类来完成本任务,思路如下: (1)定义电影类,在类中定义相应的变量、方法,实现存储电影信息,计算电影评分等功能。 (2)把每部电影作为对象进行创建,创建的电影就是本周需要看的电影。 (3)每看完一部,就对电影进行评分、计算均分、输出信息并释放资源。 7.1 对象与类——电影对象的定义和使用 什么是类? 怎么定义类和对象? 怎么定义和使用类的变量与方法? 7.1.1 类的定义和使用 7.1.2 数据成员的访问 7.1.3 成员方法的调用 7.1.4 任务实现——电影对象的定义和使用 7.1 对象与类——电影对象的定义和使用 7.1.3 成员方法的调用 7.1.3 成员方法的调用 成员方法的类别有哪些? 各类成员方法如何定义? 如何调用? 1.成员方法的类别 类的成员方法按形式分为公有成员方法、私有成员方法。 私有方法以两个下划线“__”开始,在类内容通过类名或者self来调用(调用格式:类名.__私有成员方法名()或者self.__私有成员方法名())。 公有成员方法可以通过对象名直接调用。 7.1.3 成员方法的调用 按作用对象分,类的成员方法可分为普通成员方法、类方法和静态方法。 普通成员方法是对象所使用的方法,每个普通成员方法必须至少有一个名为self的参数,并且必须是方法的第一个形参成员。 类方法是类所拥有方法,需要用修饰“@classmethod”来标识,并且设置类方法的第一个参数为cls。类方法无法访问成员变量,但在类内可以通过cls访问类变量。 静态方法需要用修饰“@staticmethod”来标识,方法中没有self或者cls参数。静态方法通过类名访问类变量。 1.成员方法的类别 7.1.3 成员方法的调用 【例7-9】不同类别成员方法的类定义。 class Student(): stdCount=0 # 类变量,创建学生对象个数 def __init__(self,no,name,age): #构造方法 self.__no=no # 私有成员变量,学生学号 ...... def setScore(self,score): # 普通成员方法,设置本门课成绩 self.score=score def getInfo(self): # 普通成员方法,打印学生信息 print("%s同学的学号是%s,年龄是%d。"%(self.__name,self.__no,self.__age)) 7.1.3 成员方法的调用 7.1.3 成员方法的调用 @classmethod def classGetInfo(cls): # 类方法 print("类方法:创建了%d个对象。"%(cls.stdCount)) # 类内可通过cls访问类变量,无法访问成员变量 @staticmethod def staticGetInfo(): # 静态方法 print("静态方法:创建了%d个对象。"%(Student.stdCount)) #类内通过类名访问类变量,无法访问成员变量 def __del__(self): print("%s对象的资源已释放。"%self.__name) 【例7-9】不同类别成员方法的类定义。 即学即答: 类方法的第一个参数为( )。 A.self字 B.cls C.static D.class 7.1.2 数据成员的访问 2.成员方法的调用 调用成员方法可使用类名或对象名与成员方法名用“.”连接即可。 普通成员方法通过对象名调用,类方法和静态方法在对象未创建时通过类名调用,对象创建后可通过类名或对象名调用。 私有数据成员在类的外部访问,则需通过对象名、类名共同作用下才可以访问。 类名. 类方法() 或 对象名. 类方法() 7.1.3 成员方法的调用 7.1.3 成员方法的调用 Student.classGetInfo() # 对象未创建,用类名调用类方法 Student.staticGetInfo() # 对象未创建,用类名调用静态方法 student1=Student('190404101','韩梅梅',18) # 创建对象 student1.getInfo() # 创建对象后,用对象名调用普通成员方法 student1.classGetInfo() # 创建对象后,可用类名或对象名调用类方法 student1.staticGetInfo() # 创建对象后,可用类名或对象名调静态方法 del student1 【例7-10】各类成员方法的调用。 类方法:创建了0个对象。 静态方法:创建了0个对象。 韩梅梅同学的学号是190404101,年龄是18。 类方法:创建了1个对象。 静态方法:创建了1个对象。 韩梅梅对象的资源已释放。 7.1.3 成员方法的调用 在7.1.1边学边练创建的类的基础上,实现以下操作: (1)定义一个猫类(Cat),类属性包括猫名称(name)、种类(kind)、年龄(age): (2)创建cat1对象,用构造函数完成类初始化,并添加成员方法printCat,打印出该猫的名称\种类\年龄,例如“叫喵喵的猫的是一只波斯猫,它2岁了。” (1)创建一个类变量catCount,用来记录创建的对象数目,在构造函数中实现catCount值的计算,并打印出现有的对象数。 (2)定义析构函数,每释放一个对象资源,类变量catCount减少1,并打印出目前尚有的对象数目。 (3)创建3个以上的对象,并逐个删除对象。del 对象名 $$

资源预览图

7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
7.1.3  成员方法的调用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。