当您的代码涉及许多对象之间的复杂交互时,面向对象的方法最为有用。在真实的生产代码中,类可能包含几十个属性和方法,并带有复杂的逻辑,但其底层结构与最简单的类相同。
类就像对象的蓝图,勾勒出某一类型的每个对象可能具有的行为和状态。比如,当您说“每位客户都有电话号码和电子邮箱,并且能够下单和取消订单”时,您就定义了一个类!通过这种方式,您可以以统一的方式讨论“客户”。而某个具体的 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])
技术支持
a.shape
技术支持
(4,)
技术支持
它还有诸如 max 和 reshape 等方法,同样可以通过点号访问。
行为 <--> 方法
import numpy as np
a = np.array([1,2,3,4])
技术支持
a.reshape(2,2)
技术支持
array([[1, 2],
[3, 4]])
技术支持
创建您的第一个类
在此示例中,您将创建一个空类 Employee。然后通过调用 Employee() 创建一个属于 Employee 类的对象 emp。
试着在控制台打印 emp 对象的 .name 属性。会发生什么?
class Employee:
pass
emp = Employee()
技术支持
自己动手试试。
要进一步了解 Python 中的面向对象编程,请观看我们课程中的此视频:Python 面向对象编程。
本文内容节选自 DataCamp 的 Aliaksandra Yarosh 开设的 Python 面向对象编程 课程。
欢迎查看 DataCamp 的 Python 面向对象编程(OOP)教程。
当您的代码涉及许多对象之间的复杂交互时,面向对象的方法最为有用。在真实的生产代码中,类可能包含几十个属性和方法,并带有复杂的逻辑,但其底层结构与最简单的类相同。
类就像对象的蓝图,勾勒出某一类型的每个对象可能具有的行为和状态。比如,当您说“每位客户都有电话号码和电子邮箱,并且能够下单和取消订单”时,您就定义了一个类!通过这种方式,您可以以统一的方式讨论“客户”。而某个具体的 Customer 对象,只是该类在特定状态值下的一个实现。
查找 Python 类
在 Python 中,一切皆对象。数字、字符串、DataFrame,甚至函数都是对象。特别是,您在 Python 中接触到的一切都有一个类,即在底层与之关联的蓝图。正是这些统一接口的存在,让您可以以相同的方式使用任意 DataFrame。
您可以对任何 Python 对象调用
type()来查明其所属的类。比如,numpy数组所属的类实际上叫作ndarray(n 维数组)。类同时包含关于状态和行为的信息。Python 中的状态信息体现在属性上,而行为信息则体现在方法上。
属性与方法
以一个
numpy数组为例:您很可能已经使用过它的一些方法和属性!例如,每个
numpy数组都有一个名为 “shape” 的属性,您可以通过数组名加点号再加 shape 来访问。状态 <--> 属性
它还有诸如
max和reshape等方法,同样可以通过点号访问。行为 <--> 方法
创建您的第一个类
在此示例中,您将创建一个空类
Employee。然后通过调用Employee()创建一个属于Employee类的对象emp。试着在控制台打印
emp对象的.name属性。会发生什么?自己动手试试。
要进一步了解 Python 中的面向对象编程,请观看我们课程中的此视频:Python 面向对象编程。
本文内容节选自 DataCamp 的 Aliaksandra Yarosh 开设的 Python 面向对象编程 课程。
欢迎查看 DataCamp 的 Python 面向对象编程(OOP)教程。