Python基础:面向对象编程 (OOP)
Python基础:面向对象编程(OOP)
Lesson 1 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Python中的面向对象编程介绍
面向对象编程(OOP)是一种编程范式,允许你用对象来表示现实世界的概念——即具备特定特性(数据)和行为(动作)的事物。
把对象想象成程序中自包含的实体,将数据和动作捆绑在一起——就像你拥有的一部智能手机:它有数据(品牌、型号、电量)并且能执行动作(拍照、打电话、播放音乐)。在代码中,这些数据存在于属性中(例如,battery_level),动作则由方法实现(例如,take_photo());它们组合成一个连贯的整体,你可以创建、配置并使用它。
类是蓝图(手机的设计),对象是根据蓝图创建的真实独立实例(你具体的手机及其当前电量和照片)。每个对象保持自己的状态,因此同一类的两个对象可同时拥有不同的值,它们通过调用彼此的方法而非直接访问内部数据进行交互——这个思想称为封装,它帮助你组织代码、减少错误并理解行为。
创建对象时,Python通常会运行 init 方法来设置其初始状态;之后,你通过调用对象的方法让它做事,这些方法可以根据需要读取或更新属性。比如,在游戏中,可以定义一个带有 health 和 position 的 Player,可以 move() 和 jump();在 Web 应用中,可以有带 name 和 password_hash 的 User,能 authenticate() 和 update_profile()。
对象就是这样:数据 + 行为,共存,从类创建,准备为你服务。
在 Python 中,所有东西都是对象。
这意味着代码围绕对象及其交互编写,使得 OOP 成为 Python 的核心部分,也是 Django、Flask 以及许多游戏引擎等流行库和框架的重要特性。
本课我们将探索 Python 中的面向对象基本概念,并学习如何创建自己的对象。
类和对象
Python 中的面向对象编程构建于类和对象之上:
- 类是对象类型的蓝图或定义。描述这种对象会有什么属性(称为属性)和行为(称为方法)。
- 对象是类的实例——它是蓝图的真实版本,实际数据存储在它的属性中。
1.1. 创建类
在 Python 中使用 class 关键字创建类,后跟类名和冒号。
示例:
class Person:
pass
这里我们创建了一个名为 Person 的类。
pass 语句是占位符——告诉 Python “此处暂时不做任何事”,等待后续代码添加。
提示:按照惯例,类名使用 PascalCase(每个单词首字母大写)。
属性和方法
类可以有:
- 属性 — 用于存储对象信息的变量。
- 方法 — 定义对象可执行动作的函数。
2.1. 添加属性
创建对象时设置属性,需在特殊方法 __init__ 中定义(发音为“dunder init”,即 double underscore init 的简称)。
每次从类创建新对象时,__init__ 会自动运行,用于用初始值初始化对象的属性。
示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
说明:
- 第一个参数
self是对当前具体被创建对象的引用。 - 其他参数 (
name,age) 是创建对象时传入的值。 self.name和self.age是存储数据的实例属性。
重要提示:self 必须总是实例方法的第一个参数——它允许你访问对象自身的属性和方法。
2.2. 添加方法
方法是属于类的函数,通常执行使用或修改对象属性的动作。
示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
这里:
- 添加了一个名为
greet的方法。 - 它使用对象的属性 (
self.name和self.age) 输出个性化的问候信息。
创建和使用对象
定义类后,可像调用函数一样通过类名创建对象。
示例:
person1 = Person("Alice", 30)
person1.greet()
输出:
Hello, my name is Alice and I am 30 years old.
小结
本课你学到了:
- 类与对象的区别。
- 如何用
__init__来初始化创建对象时的属性。 - 如何定义让对象执行动作的方法。
这就是 Python 中面向对象编程的基础。 下一课,我们将进一步介绍继承——一种基于已有类创建新类的方法。