Python 面向对象编程 (OOP)
什么是面向对象编程?
面向对象编程 (Object-Oriented Programming, OOP) 是一种编程范式,它使用“对象”来设计软件。对象可以包含数据(属性)和代码(方法)。
Python 是一种完全支持面向对象编程的语言。
类 (Class) 和对象 (Object)
- 类 (Class): 创建对象的蓝图或模板。它定义了对象的属性和方法。
- 对象 (Object): 类的实例。
class Dog:
# 类属性
species = "Canis familiaris"
# 初始化方法 (构造函数)
def __init__(self, name, age):
# 实例属性
self.name = name
self.age = age
# 实例方法
def description(self):
return f"{self.name} is {self.age} years old"
def speak(self, sound):
return f"{self.name} says {sound}"
# 创建 Dog 类的实例 (对象)
my_dog = Dog("Buddy", 3)
# 访问实例属性
print(my_dog.name) # 输出: Buddy
print(my_dog.age) # 输出: 3
# 调用实例方法
print(my_dog.description()) # 输出: Buddy is 3 years old
print(my_dog.speak("Woof Woof")) # 输出: Buddy says Woof Woof
# 访问类属性
print(my_dog.species) # 输出: Canis familiaris
OOP 的主要原则
- 封装 (Encapsulation): 将数据(属性)和操作数据的方法(方法)捆绑在一起,并对外部隐藏对象的内部状态。
- 继承 (Inheritance): 允许我们定义一个继承另一个类的所有方法和属性的类。父类(基类)和子类(派生类)。
- 多态 (Polymorphism): 允许我们以统一的方式处理不同类的对象。通常意味着子类可以覆盖父类的方法。
继承示例
class Bulldog(Dog): # Bulldog 继承自 Dog
def speak(self, sound="Gruff Gruff"): # 重写父类的方法 (多态)
return f"{self.name} says {sound} with a bulldog accent!"
my_bulldog = Bulldog("Rocky", 5)
print(my_bulldog.description()) # 调用继承自 Dog 类的方法
print(my_bulldog.speak()) # 调用 Bulldog 类重写的方法
面向对象编程可以帮助我们编写更模块化、可重用和易于维护的代码。