面向对象编程(Object-Oriented Programming,简称 OOP)是 Python 编程语言的核心特性之一。它提供了一种组织代码的方法,通过将数据和操作数据的方法封装在一起,创建出可重用和可扩展的程序。
什么是面向对象编程?
OOP 的核心思想是 封装、继承和多态。
- 封装:将数据和操作数据的函数组合在一起,形成一个“对象”。
- 继承:允许一个类继承另一个类的属性和方法。
- 多态:同一个方法在不同的对象上有不同的行为。
Python 中的类和对象
在 Python 中,我们可以使用 class
关键字来定义一个类。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} says: Woof!")
在上面的例子中,Dog
是一个类,它有两个属性:name
和 age
,还有一个方法 bark
。
我们可以创建 Dog
类的实例,也就是对象。
my_dog = Dog("Buddy", 5)
my_dog.bark() # 输出: Buddy says: Woof!
继承和多态
Python 支持多继承,这意味着一个类可以继承多个父类的属性和方法。
class Puppy(Dog):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def bark(self):
print(f"{self.name} says: Arf!")
在这个例子中,Puppy
类继承自 Dog
类,并添加了一个新的属性 breed
。
多态可以通过使用方法重写来实现。
class Cat:
def __init__(self, name, age):
self.name = name
self.age = age
def meow(self):
print(f"{self.name} says: Meow!")
# 使用多态
animals = [Dog("Buddy", 5), Puppy("Max", 2, "Labrador"), Cat("Kitty", 3)]
for animal in animals:
animal.bark() if isinstance(animal, Dog) else animal.meow()
在上面的代码中,我们创建了一个包含不同类型的动物的列表。我们遍历这个列表,并调用每个动物的 bark
或 meow
方法,根据它们的具体类型。
Python Dog