跳至主要内容

Python 类教程

在 Python 中,一切皆对象。数字、字符串、DataFrame,甚至函数都是对象。特别是,您在 Python 中接触到的一切都有一个类,即在底层与之关联的蓝图。
· 3分钟 阅读

使用 AI 探索

当您的代码涉及许多对象之间的复杂交互时,面向对象的方法最为有用。在真实的生产代码中,类可能包含几十个属性和方法,并带有复杂的逻辑,但其底层结构与最简单的类相同。

类就像对象的蓝图,勾勒出某一类型的每个对象可能具有的行为和状态。比如,当您说“每位客户都有电话号码和电子邮箱,并且能够下单和取消订单”时,您就定义了一个类!通过这种方式,您可以以统一的方式讨论“客户”。而某个具体的 Customer 对象,只是该类在特定状态值下的一个实现。

客户类图示

查找 Python 类

在 Python 中,一切皆对象。数字、字符串、DataFrame,甚至函数都是对象。特别是,您在 Python 中接触到的一切都有一个类,即在底层与之关联的蓝图。正是这些统一接口的存在,让您可以以相同的方式使用任意 DataFrame。

您可以对任何 Python 对象调用 type() 来查明其所属的类。比如,numpy 数组所属的类实际上叫作 ndarray(n 维数组)。

import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray

类同时包含关于状态和行为的信息。Python 中的状态信息体现在属性上,而行为信息则体现在方法上。

属性与方法

以一个 numpy 数组为例:您很可能已经使用过它的一些方法和属性!

例如,每个 numpy 数组都有一个名为 “shape” 的属性,您可以通过数组名加点号再加 shape 来访问。

状态 <--> 属性

import numpy as np
a = np.array([1,2,3,4])
# shape 属性
a.shape
(4,)

它还有诸如 max 和 reshape 等方法,同样可以通过点号访问。

行为 <--> 方法

import numpy as np
a = np.array([1,2,3,4])
# reshape 方法
a.reshape(2,2)
array([[1, 2],
       [3, 4]])

创建您的第一个类

在此示例中,您将创建一个空类 Employee。然后通过调用 Employee() 创建一个属于 Employee 类的对象 emp。

试着在控制台打印 emp 对象的 .name 属性。会发生什么?

# 创建一个空类 Employee
class Employee:
    pass
# 创建一个属于 Employee 类的对象 emp
emp = Employee()

自己动手试试。

要进一步了解 Python 中的面向对象编程,请观看我们课程中的此视频:Python 面向对象编程。

本文内容节选自 DataCamp 的 Aliaksandra Yarosh 开设的 Python 面向对象编程 课程。

欢迎查看 DataCamp 的 Python 面向对象编程(OOP)教程。

主题