AI学习路线图:Python 面向对象编程 (OOP)
面向对象编程 (OOP) 是一种强大的编程范式,它将数据和操作数据的方法捆绑在一起。在构建复杂的 AI 系统时,OOP 提供了无与伦比的结构和可维护性。
1. 类 (Class) 与对象 (Object)
类是创建对象的蓝图或模板。对象是类的实例。`__init__` 方法是类的构造函数,在创建新对象时自动调用。
动手试试:
定义一只狗的属性,然后创建一个狗对象。
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
my_dog = Dog("旺财", "柴犬")
print(f"创建了一只叫 {my_dog.name} 的 {my_dog.breed}。")
实时输出:
2. 封装 (Encapsulation)
封装是将数据(属性)和操作数据的方法捆绑在同一个单元(类)中的概念。这可以防止数据被意外修改。
动手试试:
在 `Dog` 类中添加一个 `bark` 方法,然后调用它。
class Dog:
...
def bark(self):
return f"{self.name} 说: 汪汪汪!"
# my_dog 对象已在上一节创建
sound = my_dog.bark()
print(sound)
实时输出:
3. 继承 (Inheritance)
继承允许我们定义一个继承另一个类的所有方法和属性的类。父类是继承的类,子类是继承自另一个类的类。
动手试试:
创建一个 `GuideDog`(导盲犬)子类,它继承自 `Dog` 类并添加一个新方法 `guide()`。
class GuideDog(Dog):
def guide(self):
return f"{self.name} 正在努力工作中!"
my_guide_dog = GuideDog("小七", "拉布拉多")
print(my_guide_dog.bark())
print(my_guide_dog.guide())
实时输出:
4. 多态 (Polymorphism)
多态意味着“多种形式”,它允许我们为不同类型的对象定义具有相同名称的方法。
动手试试:
创建一个 `Cat` 类,它和 `Dog` 类一样都有一个 `make_sound` 方法,但实现不同。点击按钮,看看不同动物的叫声。
class Cat:
def make_sound(self):
return "喵喵喵~"
class Dog:
def make_sound(self):
return "汪汪汪!"
# 遍历不同动物对象并调用它们的通用方法
for animal in [Dog(), Cat()]:
print(animal.make_sound())
输出: