2022.08.11 DAY27
第六章 面向对象编程
- Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承、多态、封装等。
- Python中,一切皆对象。
面向对象和面向过程区别
- 面向过程编程 --> 关注程序的逻辑流程 --> 小规模程序
- 面向对象编程 --> 设计者 --> 大规模程序
对象的进化
- 问题越来越复杂…
- 编程语言本身也在进化…
- 数据类型越来越复杂…
- 简单数据 -> 数组 -> 结构体 -> 对象
类的定义
-
通过类定义数据类型的属性(数据)和方法(行为)
-
类也称为类对象,类的实例也被称为实例对象。
-
定义类的语法格式如下:
class 类名:
类体
-
要点:
- 类名必须符合标识符的规则。首字母大写,多个单词使用驼峰原则。
- 类名中可以定义属性和方法。
- 属性用来描述数据,方法用来描述这些数据相关的操作。
实例:
class Student: # 类名首字母大写,多个单词驼峰原则
def __init__(self, name, score): # self必须位于第一个参数
""" 构造函数 """
self.name = name
self.score = score
def get_score(self): # self必须位于第一个参数
""" 获取分数信息 """
print("{0}的分数为{1}".format(self.name, self.score))
return self.score
def test():
student1 = Student("YJP", 99) # 调用构造函数
student1.get_score()
if __name__ == '__main__':
test()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
结果:
YJP的分数为99
构造函数__init__()
- _init_(self)方法:初始化创建好的对象。初始化指的是:“给实例对象赋值”。
- _new_()方法:用于创建对象,但我们一般无需从定义该方法,
- self可以自定义,但必须是init的第一个参数。
实例属性
- 实例属性是从属实例对象的属性,也称为实例变量。
- 要点:
- 实例属性一般在__init__()方法中通过如下代码定义:
- 在本类的其他实例方法中,也是通过self进行访问:
- 创建实例对象后,通过实例对象访问:
- obj01 = 类名() # 创建对象,调用__init__()初始化属性
- obj02.实例属性名 = 值 # 可以给已有属性赋值,也可以新加属性
实例方法
-
实例方法是从属于实例对象的方法。
-
实例方法的定义格式:
def 方法名(self [形参列表])
函数体
-
方法的调用格式如下:
-
要点:
- 定义实例方法时,第一个参数必须是self。和面的一样,self指当前的实例对象。
- 调用实例方法时,不需要也不能给self传参。self由解释器自动传参。
-
其他操作
- dir(obj)可以获得对象的所有属性、方法。
- obj._dict_ 对象的属性字典。
- pass 空语句
- isinstance(对象,类型) 判断“对象”是不是“指定类型”