1. 面向对象编程基础概念
面向对象编程(Object-Oriented Programming,简称OOP)是现代编程语言中最核心的编程范式之一。Python作为一门多范式语言,对OOP的支持非常完善。对于零基础学习者来说,理解OOP的概念是进阶Python编程的关键一步。
1.1 什么是面向对象编程
面向对象编程是一种以"对象"为中心的编程思想。与面向过程编程关注"如何做"不同,OOP更关注"谁来做"和"做什么"。在OOP中,我们把现实世界中的事物抽象为程序中的对象,每个对象都有自己的属性和行为。
举个例子,如果我们用Python模拟一个银行系统:
- 客户可以是一个对象,拥有姓名、账号等属性,以及存款、取款等方法
- 账户也可以是一个对象,拥有余额、交易记录等属性,以及计算利息等方法
1.2 面向对象的三大特性
OOP有三大核心特性,理解这些特性对掌握Python面向对象编程至关重要:
-
封装(Encapsulation):将数据和操作数据的方法绑定在一起,对外隐藏内部实现细节。在Python中,我们通过类来实现封装。
-
继承(Inheritance):子类可以继承父类的属性和方法,实现代码复用。Python支持多重继承,一个类可以继承多个父类。
-
多态(Polymorphism):同一操作作用于不同对象可以产生不同的结果。Python通过鸭子类型(Duck Typing)实现多态,即"如果它走起来像鸭子,叫起来像鸭子,那么它就是鸭子"。
提示:Python中的多态与其他语言(如Java)的实现方式有所不同,Python更注重对象的行为而非类型。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Python中的类和对象
2.1 类的定义与实例化
在Python中,使用class关键字定义类。类名通常采用大驼峰命名法(如BankAccount)。下面是一个简单的类定义示例:
python复制class Dog:
# 类属性,所有实例共享
species = "Canis familiaris"
def __init__(self, name, age):
# 实例属性,每个实例独有
self.name = name
self.age = age
def bark(self):
return f"{self.name} says woof!"
创建类的实例(对象)非常简单:
python复制my_dog = Dog("Buddy", 5)
print(my_dog.bark()) # 输出: Buddy says woof!
2.2 特殊方法(魔术方法)
Python类中有许多以双下划线开头和结尾的特殊方法,称为魔术方法(Magic Methods)。这些方法可以让我们的类更"Pythonic":
__init__: 构造函数,创建对象时自动调用__str__: 定义对象的字符串表示,print(obj)时调用__len__: 定义对象的长度,len(obj)时调用__add__: 定义对象的加法行为,obj1 + obj2时调用
示例:
python复制class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __str__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(2, 4)
v2 = Vector(3, 1)
print(v1 + v2) # 输出: Vector(5, 5)
2.3 类与实例命名空间
理解Python的命名空间对掌握面向对象编程非常重要:
- 类命名空间:存储类属性和方法,所有实例共享
- 实例命名空间:存储实例特有的属性
访问属性时,Python会按照以下顺序查找:
- 实例命名
