7.1.1 类的定义和使用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 23页
| 71人阅读
| 8人下载
普通

内容正文:

任务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.1 类的定义和使用 7.1.1 类的定义和使用 什么是类? 类怎么定义? 类怎么使用? 在现实世界中,可将事物抽象成类进行识别,比如汽车、动物、房子等,这些是面向对象程序设计中类(class)的来源。我们可以把程序处理对象抽象成类,类有属性、事件和方法。类可以派生一个或多个子类,这些子类可以通过类的继承来获到父类的属性、方法。 类中具体的个体就是对象(object),也称为实例(instance),可以通过类的实例化来创建对象。 7.1.1 类的定义和使用 把学生看作一个类 把每个具体学生看作一个对象 1.类的定义 7.1.1 类的定义和使用 class 类名: 类变量 def __init__(self, 参数): #构造方法 成员变量初始化 def 成员方法(): ...... Python用class关键字来定义类 类名:类名的首字母必须大写,其他的与一般标识符的命名规则一致。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 7.1.1 类的定义和使用 class 类名: 类变量 def __init__(self, 参数): # 构造方法 成员变量初始化 def 成员方法(): ...... 构造方法:构造方法也叫初始化方法,被命名为__init__,用于创建对象的初始化工作。 成员变量:类的属性在程序中的体现,属性是用于描述类的特征,比如人类有姓名、性别、出生日期等特征。 成员方法:用于描述类的行为。比如人类具有说话、阅读、运动等行为。 7.1.1 类的定义和使用 【例7-1】学生类的定义。 class Student(): stdCount=0 # 类变量,学生对象个数 def __init__(self,no,name,age): # 构造方法 self.no=no # 成员变量 self.name=name # 成员变量 self.age=age # 成员变量 self.score=0 # 设置了默认值的成员变量 def setScore(self,score): # 成员方法,设置本门课成绩 self.score=score def getInfo(self): # 成员方法,打印学生信息 print("%s同学的学号是%s,年龄是%d。"%(self.name,self.no,self.age)) def __del__(self): print("%s对象的资源已释放。"%self.name) 7.1.1 类的定义和使用 2.对象的创建 通过实例化对象完成具体功能。实例化对象,即为类创建一个具体的对象,以此来使用类的相关属性和方法。创建(实例化)对象的基本语法格式如下: 对象名 = 类名(参数) 7.1.1 类的定义和使用 【例7-2】学生对象的创建。 # 类定义见【例7-1】 student1=Student('190404101','韩梅梅',18) print("%s同学的学号是%s,年龄是%d。"%(student1.name,student1._Student__no, student1.age)) 7.1.1 类的定义和使用 韩梅梅同学的学号是190404101,年龄是18。 韩梅梅对象的资源已释放。 3.构造方法 def __init__(self): 构造方法__init__()是一种特殊的方法,主要用来进行一些初始化操作,故也称为初始化方法。 构造方法__init__()是Python的内置方法,init前后用双下画线开头和结尾,避免与其他成员方法名称冲突。构造方法用于在创建对象时进行对象的初始化工作。 7.1.1 类的定义和使用 【例7-3】不带参数类的构造方法。 7.1.1 类的定义和使用 韩梅梅同学的学号是190404101,年龄是18。 class Student(): def __init__(self): # 构造方法 self.no = '190404101' # 成员变量,学生学号 self.name = '韩梅梅' # 成员变量,学生名字 self.age = 18 # 成员变量,学生年龄 def getInfo(self): # 成员方法,打印学生信息 print("%s同学的学号是%s,年龄是%d。"%(self.name,self.no,self.age)) student1=Student()student1.getInfo() class Student(): def __init__(self): #构造方法 self.no = '190404101' #成员变量,学生学号 self.name = '韩梅梅' #成员变量,学生名字 self.age = 18 #成员变量,学生年龄 def getInfo(self): #成员方法,打印学生信息 print("%s同学的学号是%s,年龄是%d。"%(self.name,self.no,self.age)) student1=Student() student1.getInfo() 韩梅梅同学的学号是190404101,年龄是18。 【例7-3】不带参数类的构造方法。 class Student(): stdCount=0 #类变量,学生对象个数 def __init__(self,no,name,age): #构造方法 self.no = no #成员变量,学生学号 self.name = name #成员变量,学生名字 self.age = age #成员变量,学生年龄 Student.stdCount += 1 def getCount(self): #成员方法,设置本门课成绩 print("共创建了%d个学生对象。"%(Student.stdCount)) def getInfo(self): #成员方法,打印学生信息 print("%s同学的学号是%s,年龄是%d。"%(self.name,self.no,self.age)) student1=Student('190404101','韩梅梅',18) student1.getCount() student1.getInfo() 【例7-4】带参数类的构造方法。 韩梅梅同学的学号是190404101,年龄是18。 __init__是构造方法,它是Python的内置方法,init前后用双下划线开头和结尾 在创建新对象时,Python会自动运行__init__方法 __init__中定义形参,必须至少有一个名为self的参数,必须是方法的第一个形参 7.1.1 类的定义和使用 即学即答: 构造方法的作用是( )。 A.进行对象的初始化 B.就是一般成员方法,没什么作用 C.进行类的初始化 D.创建对象 7.1.1 类的定义和使用 4.析构方法 __del__是析构方法,它是Python的内置方法,del前后用双下划线开头和结尾。 当删除对象来释放对象占用的资源时候,Python会自动调用析构方法__del__()。 如果在对象被销毁前需要程序完成某些功能的,可以显式地在del方法中完成这些功能,对象显式调用析构方法来释放资源。 7.1.1 类的定义和使用 【例7-5】析构方法。 class Student(): def __init__(self,no,name,age): #构造方法 self.no=no # 成员变量 self.name=name # 成员变量 self.age=age # 成员变量 def __del__(self): # 析构方法 print("%s对象的资源已释放。"%self.name) student1=Student('190404101','韩梅梅',19) del student1 # 删除对象,触发析构方法 韩梅梅同学的学号是190404101,年龄是19。 韩梅梅对象的资源已释放。 7.1.1 类的定义和使用 7.1.1 类的定义和使用 边学边练: 用Python程序完成以下功能: (1)定义一个猫类(Cat),类属性包括猫名称(name)、种类(kind)、年龄(age): (2)创建cat1对象,用构造函数完成类初始化,并添加成员方法,打印出该猫的名称\种类\年龄,例如“叫喵喵的猫的是一只波斯猫,它2岁了。” (3)用析构函数释放(1)中创建的对象。 $$

资源预览图

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