很多孩子刚开始学编程时,习惯写一行算一行,代码一多就容易拧成一团扯不清。其实 Python 里有一个极其核心的思维——面向对象编程(OOP),它能帮我们把现实世界的事物直接“搬”进代码里,让逻辑变得清晰明了!
今天咱们就用最通俗的大白话,把“类”、“对象”、“属性”、“方法”这些听起来高大上的概念一次性彻底讲透!
一、图解两大核心概念:“类”与“对象”
1. 什么是“类”?“类”是一个抽象的集合或者模板,把具有相同特征的东西归为一类。
把“人”划分为一个类。
把“动物”划分为一个类。
把“植物”划分为一个类。
把“基础学科”划分为一个类。
把“编程语言”划分为一个类。 总的来说,“类”就是具有某些相同属性的一个集合。
2. 什么是“对象”?在 Python 的世界里,一切皆对象!“对象”就是某个“类”当中的一个具体实体(或者元素)。
“男生”或“女生”:是“人”这个类里的一个实体(当然,“男生”也可以单独再定义为一个类)。
“猫”:是“动物”这个类里的一个实体(“猫”也可以定义为一个类)。
“花”:是“植物”这个类里的一个实体。
“数学”:是“基础学科”这个类里的一个实体。
“Python”:是“编程语言”这个类里的一个实体。
一句话总结:“类”是抽象的大范围,“对象”是里面具体的某一个!
二、什么是“面向对象编程”?
面向对象编程,核心是一种封装的思想。它的妙处在于能够很好地模拟真实世界里的事物,把描述特征的数据和具体的行为代码(函数)打包装在一起。
比如:我们可以先在代码里创造一个“人类”的概念(类),然后再在这个概念里创建出某个具体的人(对象),或者多个不同的人(多个对象),最后定义每个人可以做什么事(实现什么功能)。
三、面向对象常用术语清单
类(Class):可以理解为造房子的图纸或模板,通过它可以创建出无数个具体实例(例如“人类”)。
对象(Object):类本身不能直接使用,通过类创建出来的实例才能拿来用(例如具体的“某个人”)。
属性(Attribute):类里面的变量,用来记录特征(例如人的大脑、四肢、五官等)。
方法(Method):类里面的函数,用来表示行为与功能(例如大脑可以“思考”,眼睛可以“观看世界”)。
核心关键字:class(定义类)、__init__(构造方法)、self(代表当前实例)、object等。
三大核心特性:封装、继承、多态。
四、面向对象的代码实现框架
在 Python 中,我们使用关键字 class来定义一个类。
1. 基础语法框架:
class ClassName: # 用 class 关键字定义类名
def __init__(self): # 构造方法
self.instance_var = "" # 实例变量
class_var = "" # 类变量,即属性
def func(self): # 类函数,即方法
'''
实现功能的代码块 '''
2. 游戏案例:设计一只“乌龟”角色如果在游戏里要设计一只乌龟(turtle)角色,用面向对象的思想可以拆解为两个方面:
表面特征(属性):用变量表示,例如绿色、有 4 条腿、重 10 kg、有外壳。
行为特征(方法):用函数表示,例如它会爬、会吃东西、会睡觉、会将头和四肢缩到壳里[cite: 21]。
完整代码描述如下:
'''
将乌龟用代码来表示:
乌龟的表面特征(属性)可以用变量来表示
乌龟的行为特征(方法)可以用函数来表示'''
class turtle: # 定义一个 turtle 类
# 1. 定义属性(变量)
bodyColor = "绿色" # 颜色是绿色
footNum = 4 # 有 4 条腿
weight = 10 # 重 10 kg
hasShell = True # 有外壳
# 2. 定义方法(函数)
def crawl(self): # 会爬
print("爬行")
def eat(self): # 会吃东西
print("吃东西")
def sleep(self): # 会睡觉
print("睡觉")[cite: 21]
def protect(self): # 会缩到壳里
print("缩进了壳里")
五、知识点汇总对照表
核心概念 | 通俗大白话解释 | 代码中的表现形式 | 乌龟案例对应 |
类 (Class) | 具有相同属性的集合/抽象模板 | class 类名: | “乌龟”这个物种定义 |
对象 (Object) | 模板创建出来的具体实体 | 类的实例化对象 | 游戏里生成的某一只具体乌龟 |
属性 (Attribute) | 描述事物的表面特征数据 | 类中的变量 | 绿色、4条腿、10kg、有外壳 |
方法 (Method) | 描述事物能做的行为动作 | 类中的函数 | 爬行、吃东西、睡觉、缩进壳里 |