欢迎来到 Python 基础入门 Day06!在前几天的学习中,我们已经掌握了 Python 的基本语法、数据结构、函数、模块、文件操作与异常处理。如果你还没有学习之前的内容,可以点击以下链接进行复习:
今天,我们将学习 面向对象编程(OOP) 的核心概念。面向对象编程是 Python 编程的一个重要特性,可以帮助我们构建更模块化、可维护的程序。
目录
- 面向对象编程简介
- 类与对象
- 属性与方法
- 构造方法与析构方法
- 类的继承与多态
- 小结与练习
一、面向对象编程简介
面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,通过将程序分解为对象的集合来组织代码。每个对象都包含数据(属性)和行为(方法)。OOP 的核心概念包括 类、对象、继承、封装 和 多态。
1.1 面向对象编程的优点
- 提高代码重用性:通过类和继承机制实现代码复用
- 提高代码可读性:通过对象模型使程序更具结构化
- 便于维护和扩展:降低代码耦合度
二、类与对象
2.1 定义类
在 Python 中,类是通过 class
关键字定义的,语法如下:
class 类名:
# 类的属性和方法
2.2 创建对象
对象是类的实例化,通过调用类来创建对象:
# 定义一个简单的类
class Dog:
def bark(self):
print("汪汪!")
# 创建对象
my_dog = Dog()
my_dog.bark() # 输出:汪汪!
三、属性与方法
3.1 属性(变量)
属性是类中的数据成员,用于存储对象的状态:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建对象并访问属性
person = Person("Alice", 25)
print(person.name) # 输出:Alice
print(person.age) # 输出:25
3.2 方法(函数)
方法是类中的函数,用于定义对象的行为:
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
circle = Circle(5)
print(circle.area()) # 输出:78.5
四、构造方法与析构方法
4.1 构造方法 __init__()
构造方法在对象创建时自动调用,用于初始化对象的属性:
class Car:
def __init__(self, brand):
self.brand = brand
my_car = Car("Tesla")
print(my_car.brand) # 输出:Tesla
4.2 析构方法 __del__()
析构方法在对象被销毁时自动调用:
class Sample:
def __del__(self):
print("对象被销毁")
obj = Sample()
del obj # 输出:对象被销毁
五、类的继承与多态
5.1 类的继承
继承是面向对象编程中的重要特性,可以让一个类继承另一个类的属性和方法:
# 父类
class Animal:
def eat(self):
print("吃东西")
# 子类
class Dog(Animal):
def bark(self):
print("汪汪!")
dog = Dog()
dog.eat() # 输出:吃东西
dog.bark() # 输出:汪汪!
5.2 方法重写
子类可以重写父类的方法:
class Bird(Animal):
def eat(self):
print("吃虫子")
bird = Bird()
bird.eat() # 输出:吃虫子
5.3 多态
多态是指在不同的类中实现相同的方法名,具体执行时根据对象类型调用相应的方法:
class Cat(Animal):
def sound(self):
print("喵喵!")
class Dog(Animal):
def sound(self):
print("汪汪!")
def make_sound(animal):
animal.sound()
make_sound(Cat()) # 输出:喵喵!
make_sound(Dog()) # 输出:汪汪!
六、小结与练习
今天我们学习了 面向对象编程 的核心概念,包括 类与对象、属性与方法、构造方法与析构方法、继承与多态。这些知识将帮助你编写更加模块化和可扩展的 Python 程序。
今日练习题:
- 定义一个
Student
类,包含属性name
和grade
,并定义一个方法display()
显示学生信息。 - 创建一个
BankAccount
类,包含balance
属性,提供deposit()
和withdraw()
方法操作余额。 - 定义一个父类
Shape
,包含方法area()
,再创建子类Rectangle
和Circle
,分别实现area()
方法。
下一节预告:在 Day07 中,我们将学习 Python 的常用内置模块 和 正则表达式,敬请期待!
Pingback: Python 基础入门 Day08 – Nas 的天空