4.1 类与对象

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它使用对象来表示现实世界中的实体和它们之间的关系。在 Python 中,我们可以使用类(Class)来定义对象的结构和行为。类是对象的蓝图,而对象是类的实例。

4.1.1 定义类

在 Python 中,使用 class 关键字定义一个类,并使用大驼峰命名法(每个单词首字母大写)。类中可以包含属性(Attribute)和方法(Method)。属性是类或对象的状态,方法是类或对象的行为。以下是一个简单的类定义示例:

class Dog:
    species = "Canis lupus familiaris"  # 类属性

    def __init__(self, name, age):  # 构造方法
        self.name = name  # 实例属性
        self.age = age

    def bark(self):  # 实例方法
        print(f"{self.name} says Woof!")

在这个示例中,我们定义了一个 Dog 类,它包含一个类属性 species,一个构造方法 __init__() 以及一个实例方法 bark()

4.1.2 创建对象

要创建一个类的实例(对象),只需调用类名并传递构造方法所需的参数即可。例如:

dog1 = Dog("Buddy", 3)
dog2 = Dog("Milo", 5)

这里我们创建了两个 Dog 类的实例,分别是 dog1 和 dog2

4.1.3 访问属性和方法

可以使用点(.)操作符访问对象的属性和方法。例如:

dog1 = Dog("Buddy", 3)
print(dog1.name)  # 输出:Buddy
print(dog1.age)  # 输出:3

dog1.bark()  # 输出:Buddy says Woof!

print(Dog.species)  # 输出:Canis lupus familiaris

在这个示例中,我们分别访问了对象 dog1 的属性 nameage 以及方法 bark(),还访问了类属性 species

4.1.4 修改属性

可以直接修改对象的属性值。例如:

dog1 = Dog("Buddy", 3)
dog1.age = 4
print(dog1.age)  # 输出:4

4.1.5 继承

继承是面向对象编程的一个重要特性,它允许在一个现有类的基础上创建新类,从而实现代码重用和模块化。新类可以继承现有类的属性和方法,并可以添加或覆盖它们。

要创建一个继承自现有类的新类,只需在类定义时将现有类名放在括号里。例如:

class GermanShepherd(Dog):
    species = "Canis lupus german shepherd"

    def guard(self):
        print(f"{self.name} is guarding the house.")

在这个示例中,我们创建了一个 GermanShepherd 类,它继承自 Dog 类。我们覆盖了 species 属性,并添加了一个新方法 guard()

gs_dog = GermanShepherd("Max", 6)
print(gs_dog.species)  # 输出:Canis lupus german shepherd
gs_dog.bark()  # 输出:Max says Woof!
gs_dog.guard()  # 输出:Max is guarding the house.

4.1.6 多态

多态是指同一操作作用于不同的对象,可以产生不同的结果。多态是面向对象编程的另一个重要特性,它使得我们可以使用统一的接口处理不同类型的对象。

下面是一个多态的示例:

class Cat:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} says Meow!")

class GoldenRetriever(Dog):
    def speak(self):
        print(f"{self.name} says Woof!")

def let_animals_speak(animals):
    for animal in animals:
        animal.speak()

cat1 = Cat("Whiskers")
dog1 = GoldenRetriever("Buddy", 4)

let_animals_speak([cat1, dog1])

在这个示例中,我们定义了一个名为 let_animals_speak() 的函数,它接收一个动物列表作为参数,并调用列表中每个动物的 speak() 方法。我们创建了一个 Cat 类的实例 cat1 和一个 GoldenRetriever 类的实例 dog1,并将它们传递给 let_animals_speak() 函数。尽管它们是不同类型的对象,但多态允许我们使用相同的接口处理它们。

输出结果为:

Whiskers says Meow!
Buddy says Woof!

这样,我们就详细地介绍了面向对象编程中的类与对象,以及相关的概念,如属性、方法、继承和多态。希望这些内容和示例能帮助你更好地理解 Python 面向对象编程。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

file

你可能感兴趣的:(人工智能)