跳到主要内容

Python 对象与类

提示
  1. Python 中的类是对象的蓝图,对象是根据类创建的实例。
  2. 类定义使用 class 关键字,包括属性和方法。
  3. 通过对象名和 . 符号可以访问和修改类的属性,还可以调用类的方法。

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

对象仅仅是数据(变量)和方法(函数)的集合。类似地,类是该对象的蓝图。

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

Python 类

类被视为对象的蓝图。我们可以将类想象为房屋的草图(原型)。它包含了关于楼层、门、窗等的所有细节。基于这些描述我们建造房屋。房屋即为对象。

由于可以根据同一描述制作多座房屋,我们可以从一个类创建多个对象。

定义 Python 类

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

class ClassName:
# 类定义

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

看一个例子,

class Bike:
name = ""
gear = 0

这里,

  • Bike - 类的名称
  • name/gear - 类内的变量,分别具有默认值 ""0

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

Python 对象

对象称为类的实例。例如,假设 Bike 是一个类,那么我们可以从这个类创建像 bike1bike2 等对象。

下面是创建对象的语法。

objectName = ClassName()

看一个例子,

# 创建类
class Bike:
name = ""
gear = 0

# 创建类的对象
bike1 = Bike()

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

使用对象访问类属性

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

# 修改 name 属性
bike1.name = "Mountain Bike"

# 访问 gear 属性
bike1.gear

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

示例 1:Python 类和对象

# 定义一个类
class Bike:
name = ""
gear = 0

# 创建类的对象
bike1 = Bike()

# 访问属性并赋予新值
bike1.gear = 11
bike1.name = "Mountain Bike"

print(f"名称: {bike1.name}, 变速器: {bike1.gear} ")

输出

名称: Mountain Bike, 变速器: 11

在上面的示例中,我们定义了一个名为 Bike 的类,包含两个属性:name 和 gear。

我们还创建了一个名为 bike1Bike 类对象。

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

创建 Python 类的多个对象

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

# 定义一个类
class Employee:
# 定义一个属性
employee_id = 0

# 创建 Employee 类的两个对象
employee1 = Employee()
employee2 = Employee()

# 使用 employee1 访问属性
employee1.employeeID = 1001
print(f"员工 ID: {employee1.employeeID}")

# 使用 employee2 访问属性
employee2.employeeID = 1002
print(f"员工 ID: {employee2.employeeID}")

输出

员工 ID: 1001
员工 ID: 1002

在上述示例中,我们创建了 Employee 类的两个对象 employee1 和 employee2。

Python 方法

我们还可以在 Python 类内定义函数。定义在类内的 Python 函数 称为方法。

看一个例子,

# 创建一个类
class Room:
length = 0.0
breadth = 0.0

# 方法来计算面积
def calculate_area(self):
print("Area of Room =", self.length * self.breadth)

# 创建 Room 类的对象
study_room = Room()

# 为所有属性赋值
study_room.length = 42.5
study_room.breadth = 30.8

# 在类内部访问方法
study_room.calculate_area()

输出

Area of Room = 1309.0

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

  • 属性:length 和 breadth
  • 方法calculate_area()

在这里,我们创建了一个名为 study_room 的对象,用于为属性 length 和 breadth 赋值。

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

study_room.calculate_area()

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

Python 构造函数

之前,我们为一个类属性赋予了默认值,

class Bike:
name = ""
...
# 创建对象
bike1 = Bike()

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

class Bike:
# 构造函数
def __init__(self, name = ""):
self.name = name

bike1 = Bike()

在这里,__init__() 是构造函数,它在每次实例化该类的新对象时被调用。

上面的构造函数初始化了 name 属性的值。我们使用了 self.name 来引用 bike1 对象的 name 属性。

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

bike1 = Bike("Mountain Bike")

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