Python从入门到精通
上QQ阅读APP看书,第一时间看更新

1.9 Python中的类与对象

类是面向对象程序设计中的概念,也是一种抽象的数据类型。程序员可以通过类自定义数据类型。对数据类型进行抽象是指对该数据类型的共有属性和行为进行概括。

1.9.1 定义一个类

在Python中使用class关键字来定义一个类,基本语法如下。

class class_name:
       def __init__(self):
pass

class_name表示定义的类名,即为定义的数据类型取一个名称,class class_name下面的为类体,在类体中可以定义该数据类型的属性和操作方法。类体中的__init__()函数表示该类的初始化函数,对类进行实例化时,Python会自动执行该初始化函数。实例化是指获取该数据类型的一个具体实例,该具体实例称为类的对象。

__init__()方法中的self参数是必需的,表示实例化后的对象。为对象添加属性使用“self.属性名”的语法,例如添一个name属性,属性值为Backer:self.name = "Backer"。

下面定义一个学生类,表示学生这种数据类型,在学生类的初始化函数中指定一个name参数,表示学生的姓名;在学生类中定义一个study()方法,表示该学生类型的学习行为,方法中的self参数是必需的,表示实例化后的对象。在方法中可以通过self来引用对象的属性。

实例代码
class Student:
       def __init__(self, name):
           self.name = name
       def study(self, course):
print(self.name, "study", course)

对类进行实例化类似于函数调用,使用“类名()”的形式来进行实例化,()中需传递初始化函数__init__()中的参数(self除外),访问对象的属性或方法使用“对象名.”进行访问。

对类进行实例化
class Student:
       def __init__(self, name):
           self.name = name
 
# 对Student类进行实例化
student = Student("Backer")
# 使用“对象名.”来访问student对象的name属性
print(student.name)
# 使用“对象名.”来访问student对象的study()方法
student.study("English")
程序输出
Backer
Backer study English

1.9.2 技术总结

本节主要包含以下3个重要的知识点,请读者多加巩固。

类是一种抽象的数据类型,通过类,程序员可以自定义数据类型。

类中的__init__()方法为类的初始化函数,对类进行实例化时,Python会自动调用该构造函数。

Python中的self表示类实例化后的对象。

1.9.3 课后习题

(1) 什么是类?什么是抽象?

(2) 定义一个Student类,在__init__()中分别指定name和age参数,将其设置为对象的属性。

(3) 在第(2)题的基础上,在Student类中定义一个output()函数,然后将name与age输出。提示:在构造函数中定义的属性,在类体中的方法中可以通过self来进行引用。