如何理解 Python 中类与实例的关系

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在 Python 中,类和实例是面向对象编程的基石。理解类和实例之间的关系对于有效利用 Python 的面向对象特性至关重要。本教程将指导你完成定义和使用类的过程,以及访问它们的属性和方法。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/ObjectOrientedProgrammingGroup -.-> python/classes_objects("Classes and Objects") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/ObjectOrientedProgrammingGroup -.-> python/inheritance("Inheritance") python/ObjectOrientedProgrammingGroup -.-> python/polymorphism("Polymorphism") python/ObjectOrientedProgrammingGroup -.-> python/encapsulation("Encapsulation") subgraph Lab Skills python/classes_objects -.-> lab-398074{{"如何理解 Python 中类与实例的关系"}} python/constructor -.-> lab-398074{{"如何理解 Python 中类与实例的关系"}} python/inheritance -.-> lab-398074{{"如何理解 Python 中类与实例的关系"}} python/polymorphism -.-> lab-398074{{"如何理解 Python 中类与实例的关系"}} python/encapsulation -.-> lab-398074{{"如何理解 Python 中类与实例的关系"}} end

理解 Python 类

在 Python 中,类是定义对象的结构和行为的蓝图或模板。它是创建对象(即类的实例)的蓝图。理解类与其实例之间的关系在 Python 编程中至关重要。

什么是类?

类是一种用户定义的数据类型,它封装了与特定实体或概念相关的数据(属性)和函数(方法)。它提供了一种创建和管理具有共同特征和行为的对象的方式。

定义类

要在 Python 中定义类,你使用 class 关键字,后跟类名。在类内部,你可以定义描述类的特征和行为的属性(变量)和方法(函数)。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

在上面的示例中,我们定义了一个 Person 类,它有两个属性(nameage)和一个方法(greet())。

创建实例

一旦你定义了一个类,就可以创建该类的实例(对象)。每个实例都将有自己的一组属性,并且可以访问类中定义的方法。

person1 = Person("John", 30)
person1.greet()  ## 输出:Hello, my name is John and I'm 30 years old.

在这个示例中,我们创建了一个名为 person1Person 类实例,然后在该实例上调用 greet() 方法。

访问属性和方法

你可以使用点号(.)表示法访问实例的属性和方法。self 关键字在类中用于引用当前实例。

print(person1.name)  ## 输出:John
print(person1.age)   ## 输出:30
person1.greet()      ## 输出:Hello, my name is John and I'm 30 years old.

通过理解类和实例之间的关系,你可以在 Python 程序中创建和管理复杂的数据结构和行为。

定义和使用实例

定义实例

要创建类的实例,你使用类名后跟括号 ()。这个过程通常被称为“实例化”。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

person1 = Person("John", 30)
person2 = Person("Jane", 25)

在上面的示例中,我们创建了 Person 类的两个实例:person1person2

访问实例属性和方法

你可以使用点号(.)表示法访问实例的属性和方法。self 关键字在类中用于引用当前实例。

print(person1.name)  ## 输出:John
print(person1.age)   ## 输出:30
person1.greet()      ## 输出:Hello, my name is John and I'm 30 years old.

print(person2.name)  ## 输出:Jane
print(person2.age)   ## 输出:25
person2.greet()      ## 输出:Hello, my name is Jane and I'm 25 years old.

修改实例属性

你可以通过为实例属性赋新值来修改它们。

person1.age = 31
print(person1.age)  ## 输出:31

比较实例

你可以使用标准比较运算符(==!=<> 等)比较类的实例。

if person1 == person2:
    print("person1 and person2 are the same person.")
else:
    print("person1 and person2 are different people.")

通过理解如何定义和使用实例,你可以在 Python 程序中创建和操作对象,以表示现实世界中的实体及其行为。

访问实例属性和方法

访问实例属性

要访问实例的属性,你可以使用点号(.)表示法。self 关键字在类中用于引用当前实例。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

person1 = Person("John", 30)
print(person1.name)  ## 输出:John
print(person1.age)   ## 输出:30

访问实例方法

你也可以使用点号(.)表示法访问实例的方法。

person1.greet()  ## 输出:Hello, my name is John and I'm 30 years old.

修改实例属性

你可以通过为实例属性赋新值来修改它们。

person1.age = 31
print(person1.age)  ## 输出:31

调用实例方法

要调用实例方法,你使用点号(.)表示法,后跟方法名和任何所需的参数。

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

rect = Rectangle(5, 10)
area = rect.area()
print(area)  ## 输出:50

通过理解如何访问和使用实例属性及方法,你可以编写更强大、更灵活的 Python 程序来处理对象及其行为。

总结

在本教程结束时,你将对 Python 类和实例有扎实的理解,以及如何在编程中利用它们。你将能够自信地创建自定义类、实例化对象,并访问它们的属性和方法。这些知识将使你能够编写更模块化、可维护和可扩展的 Python 代码。