文档详情

Python程序设计课件 第五章 类.pptx

发布:2025-03-08约6.13千字共13页下载文档
文本预览下载声明

Python程序设计?第五章类

本章知识点导图面向对象编程——ObjectOrientedProgramming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。类(Class),也即面向对象。简单地说,可以把它理解为“物以类聚”,即有相同的功能特性。“类”好似图纸、模具,另一方面又可以理解为是功能(函数)的组合。

类的定义Python中的类(Class)是一个抽象的概念,这也是Python的核心概念,可以把它简单看作数据以及由存取、操作这些数据的方法所组成的一个集合。函数的作用就是重复利用代码,那为什么还要另外再定义类这个概念呢?类有以下优点:(1)类对象是多态的:也就是多种形态,这意味着我们可以对不同的类对象使用同样的操作方法,而不需要额外写代码。(2)类的封装:封装之后,可以直接调用类的对象,来操作内部的一些类方法,不需要让使用者看到代码工作的细节。(3)类的继承:类可以从其他类或者元类中继承它们的方法,直接使用。定义类(class)的语法:classNameClass(object):deffname(self,name):self.name=name第一行语法是class后面紧接类的名称,最后带上“:”。类的名称首字母最好大写,以区别函数。第二行开始是类的方法,和函数非常相似,但是与普通函数不同的是,它的内部有一个“self”参数,它的作用是对对象自身的引用。

以一个例子来说明面向过程和面向对象在程序流程上的不同之处。假设要处理学生的成绩表,输出学生的成绩,面向过程的程序可以通过函数来实现,比如打印学生的成绩:In[1]:defprint_score(name,score):???...:print({0},{1}.format(name,score))In[2]:print_score(张三,80)?张三,80如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有name和score这两个属性(Property)。如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后给对象发一个print_score消息,让对象自行把自己的数据打印出来。In[3]:classStudent(object):???...:def__init__(self,name,score):???...:self.name=name???...:self.score=score???...:defprint_score(self):???...:print({0},{1}.format(self.name,self.score))

给对象发消息实际上就是调用对象对应的关联函数,我们称之为对象的方法(Method)。面向对象的程序写出来如下:In[4]:bart=Student(BartSimpson,59)???...:lisa=Student(LisaSimpson,87)???...:bart.print_score()BartSimpson,59?In[5]:lisa.print_score()LisaSimpson,87类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数,但是在调用此方法的时候,不用为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,它就是self。

类的创建创建类的方法跟自定义函数类似,但有区别,具体如下:1、创建类要用class引出;2、类的名称首字母要大写;3、类中的功能函数都需要有一个self参数;4、参数传进类内需要用self.来接收,如接收参数a的值为self.a=a;5、类中的属性和参数在引用时要在其前加self.。在类中有一些固定的参数,称为属性;类内的函数称为方法。【例5-1】创建一个Peo类。In[6]:classPeo:???...:def__init__(self,name,age,sex):???...:self.Name=name???...:self.Age=age???...:self.Sex=sex???...:defspeak(self):???...:

显示全部
相似文档