内容正文:
单元6
类的定义与使用
Python程序设计
1
单元6 类的定义与使用
1
知识入门
知识要点
1.Python 3 面向对象技术简介
2.Python 身份运算符
1
单元6 类的定义与使用
2
1.Python 3 面向对象技术简介
(1)类(Class)
在Python 中,类是一个抽象概念,例如学生、职工、教师、学校、班级、图书、电子产品、手机、电视机、西装等客观实体都可以在程序中定义为对应的类,在类中,可以定义每个对象共有的属性和方法,类是用来描述具有相同的属性和方法的对象的集合。
(2)实例化
(3)对象
创建一个类的实例,即创建类的具体对象,也称为实例化。
对象是事物存在的实体,类定义完成后就会产生一个类对象。对类进行实例化操作,创建一个类的实例,就会产生类的实例对象,实例对象是根据类的模板生成的一个内存实体,有确定的数据与内存地址。
1
单元6 类的定义与使用
3
1.Python 3 面向对象技术简介
(4)数据成员
类主要包括两类数据成员:属性和方法。类定义了集合中每个对象共有的属性和方法。在类的声明中,属性是用变量来表示的,方法是指在类中定义的函数。
(5)类属性
(6)实例属性
实例属性用来描述根据类创建的实例对象,通过实例属性或者self 变量可以给实例绑定属性。实例属性是指定义在方法内部的属性,通常在类的__init__() 方法内部定义,在各自实例对象的内存中都保存一份,只能通过实例名称而不能通过类名称访问实例属性。也可以通过实例名称修改实例属性值。
描述类的属性称为类属性,它属于类。如果类本身需要绑定一个属性,可以直接在类中定义属性,这种属性是类属性,归类所有。类属性在内存中只有一份,所有实例对象公用,类的所有实例都可以访问。
1
单元6 类的定义与使用
4
1.Python 3 面向对象技术简介
(7)方法
方法是指类中定义的函数,通常也分为实例方法和类方法。实例方法是在类中使用def关键字定义的函数,至少有一个参数,一般以名为“self ”的变量作为参数(使用其他名称也可以),而且需要作为第一个参数,实例方法一般使用实例名称调用。类方法是属于类的方法,这种方法要使用@classmethod 来修饰,其第一个参数一般命名为cls(也可以是别的名称)。类方法一般使用类名称调用。
(8)继承
(9)方法重写
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(Override),也称为方法的重写。
继承是指派生类(Derived Class)继承父类(Base Class)的属性和方法,允许把一个派生类的对象作为一个父类对象。
1
单元6 类的定义与使用
5
2.Python 身份运算符
运算符 说明 实例
is is是判断两个标识符是不是引用自同一个对象 x is y,类似id(x) == id(y)。如果引用的是同一个对象则返回True,否则返回False
is not is not是判断两个标识符是不是引用自不同对象 x is not y,类似id(a) != id(b)。如果引用的不是同一个对象则返回结果True,否则返回False。
【说明】表6-1 中的id() 函数用于获取对象的内存地址。
is 与== 的区别是:is 用于判断两个变量的引用对象是否为同一个,== 用于判断引用变量的值是否相等。
1
单元6 类的定义与使用
6
循序渐进
知识要点
6.1 创建类及其对象
6.1.2 创建类的实例
6.2 类属性与实例属性
6.3 类方法与实例方法
6.3.1 类的实例方法
6.3.2 类方法
6.3.3 静态方法6
【任务6-1】定义商品类及其成员
【任务6-2】修改与访问类属性、创建实例属性
【任务6-3】定义与访问类的实例方法
6.4 类的构造方法与析构方法
6.4.1 类的构造方法
6.4.2 类的析构方法
6.5 类的继承与方法重写
6.5.1 类的继承
6.5.2 方法继承
6.5.3 方法重写
6.6 Python 3的命名空间和作用域
1
单元6 类的定义与使用
7
6.1.1 定义类
在Python 中,类的定义使用class 关键字来实现,定义类的基本语法格式如下。
class ClassName:
<statement> # 类体
其中,ClassName 用于指定类名称,一般使用大写字母开头,如果类名称中包括多个单词,后面的几个单词的首字母也要大写,即采用大驼峰法命名,这是类的命名惯例,应遵守;statement 表示类体,类体主要包括类属性定义和方法定义。如果在定义类时,暂时不需要编写代码,也可以在类体中直接使用pass 语句代替实际的代码。
【注意】类名称后有个冒号,类