第8章 类

在数学中,编写正弦函数sin时提到一个数学对象,因此我们从初等微积分中了解了很多方法,例如:

  • 我们可能想要计算x = 0.5时的sin x的值,即计算sin(0.5),其将返回一个实数。
  • 我们可能想要计算其导数,将得到另一个数学对象cos。
  • 我们可能想要计算其泰勒多项式(Taylor polynomial)的前3个系数。

这些方法不仅可以应用于正弦函数sin,而且可以应用于其他足够平滑的函数。然而,这些方法对于其他数学对象(例如,数字5)没有任何意义。具有相同方法的对象(比如函数)在抽象类中会分在一组。能够应用于函数的每个语句和每种方法尤其适用于sin或cos。这种类的其他示例可能是一个有理数,其中存在分母和分子方法:一个具有左右边界方法的区间,或是一个我们可以询问其是否是有限的无限序列等。

在这种情况下,sin被称为类的一个实例。数学用语Let g be a function…在该上下文中称为实例化。这里的g是函数的名称,可以分配给它的许多属性之一。另一个属性可能是其域。

数学对象p(x)= 2x2−5就像正弦函数。每个函数方法适用于p,但是我们也可以为p定义特殊方法。例如,我们可能会要求p的系数。这些方法可以用来定义多项式类。由于多项式是函数,它们还继承了函数类的所有方法。

在数学中,我们经常将相同的运算符用于完全不同的运算。例如,运算符+在5 + 4和sin + cos中的含义是不同的。我们可以尝试通过使用相同的运算符来表达数学运算的相似之处。我们通过将其应用于数学示例,从面向对象编程中引入了如下术语。

  • 实例和实例化
  • 继承
  • 方法
  • 属性
  • 运算符重载

本章将展示在Python中如何使用这些概念。

本节将用有理数的示例来说明类的概念,也就是形式为 ...

Get Python3.0科学计算指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.