Python 类和对象

在上一篇教程中,我们学习了 Python OOP。我们知道 Python 也支持对象和类的概念。

一个对象只是数据(变量)和方法(函数)的集合。同样,一个类是该对象的蓝图。

在我们学习对象之前,让我们先来了解一下 Python 中的类。


Python 类

类被认为是对象的蓝图。

我们可以把类想象成房子的草图(原型)。它包含了关于楼层、门、窗户等所有细节。

根据这些描述,我们建造房子;房子就是对象。

因为可以根据同一个描述建造许多房子,所以我们可以从一个类创建许多对象。


定义 Python 类

我们使用 class 关键字在 Python 中创建一个类。例如,

class ClassName:
    # class definition 

在这里,我们创建了一个名为 ClassName 的类。

让我们看一个例子,

class Bike:
    name = ""
    gear = 0

这里,

  1. Bike - 类的名称
  2. name/gear - 类内部的变量,默认值分别为 ""0

注意:类内部的变量称为属性。


Python 对象

一个对象被称为一个类的实例。

假设 Bike 是一个类,那么我们可以从该类创建像 bike1bike2 等对象。

这是创建对象的语法。

objectName = ClassName()

让我们看一个例子,

# create class
class Bike:
    name = ""
    gear = 0

# create objects of class
bike1 = Bike()

这里,bike1 是这个类的对象。现在,我们可以使用这个对象来访问类的属性。


使用对象访问类属性

我们使用 . 符号来访问类的属性。例如,

# modify the name property
bike1.name = "Mountain Bike"

# access the gear property
bike1.gear

在这里,我们使用 bike1.namebike1.gear 分别更改和访问 namegear 属性的值。


示例 1:Python 类和对象

# define a class
class Bike:
    name = ""
    gear = 0

# create object of class
bike1 = Bike()

# access attributes and assign new values
bike1.gear = 11
bike1.name = "Mountain Bike"

print(f"Name: {bike1.name}, Gears: {bike1.gear} ")

输出

Name: Mountain Bike, Gears: 11

在上面的示例中,我们定义了一个名为 Bike 的类,它有两个属性:namegear

我们还创建了 Bike 类的一个对象 bike1

最后,我们使用 . 符号访问和修改了对象的属性。


创建 Python 类的多个对象

我们也可以从一个类创建多个对象。例如,

# define a class
class Employee:
    # define a property
    employee_id = 0

# create two objects of the Employee class
employee1 = Employee()
employee2 = Employee()

# access property using employee1
employee1.employeeID = 1001
print(f"Employee ID: {employee1.employeeID}")

# access properties using employee2
employee2.employeeID = 1002
print(f"Employee ID: {employee2.employeeID}")

输出

Employee ID: 1001
Employee ID: 1002

在上面的示例中,我们创建了 Employee 类的两个对象 employee1employee2


Python 方法

我们也可以在 Python 类中定义一个函数。在类中定义的 Python 函数称为方法

让我们看一个例子,

# create a class
class Room:
    length = 0.0
    breadth = 0.0
    
    # method to calculate area
    def calculate_area(self):
        print("Area of Room =", self.length * self.breadth)

# create object of Room class
study_room = Room()

# assign values to all the properties 
study_room.length = 42.5
study_room.breadth = 30.8

# access method inside class
study_room.calculate_area()

输出

Area of Room = 1309.0

在上面的例子中,我们创建了一个名为 Room 的类,包含

  1. 属性lengthbreadth
  2. 方法calculate_area()

在这里,我们从 Room 类创建了一个名为 study_room 的对象。

然后我们使用该对象为属性 lengthbreadth 赋值。

请注意,我们还使用了该对象来调用类内部的方法,

study_room.calculate_area()

在这里,我们使用了 . 符号来调用方法。最后,方法内部的语句被执行。


Python 构造函数

早些时候,我们给一个类属性赋了一个默认值,

class Bike:
    name = ""
...
# create object
bike1 = Bike()

然而,我们也可以使用构造函数来初始化值。例如,

class Bike:

    # constructor function    
    def __init__(self, name = ""):
        self.name = name

bike1 = Bike()

这里,__init__() 是构造函数,每当该类的一个新对象被实例化时,它就会被调用。

上面的构造函数初始化了 name 属性的值。

我们使用了 self.name 来引用 bike1 对象的 name 属性。

如果我们在类中使用构造函数来初始化值,我们需要在创建类的对象时传递相应的值。

bike1 = Bike("Mountain Bike")

这里,"Mountain Bike" 被传递给 __init__()name 参数。


另请阅读

视频:Python 类和对象

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战