乐趣区

关于人工智能:41-类与对象

面向对象编程(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

退出移动版