3.2.1 数据类型的基本元素

为了描述把一个数据类型实现为一个Python类的过程,我们现在将详细讨论3.1节中Charge数据类型的实现。我们已经讨论了相应的客户端程序,用于展示该数据类型的实用性(具体请参见程序3.1.2和程序3.1.8)。现在我们将关注其实现细节。所有用户开发的数据类型实现均包括与这个示例相同的基本元素。

1. API

应用程序编程接口是与所有客户端之间的契约,因而也是所有实现的起始点。为了强调API对于实现的重要性,我们在表3-2-2中再一次罗列了Charge数据类型的API。为了把Charge数据类型实现为一个Python类,我们需要定义数据类型的值,编写代码以使用指定数据类型的值初始化一个新的Charge对象,实现操作这些值的两个方法。当面临为某些应用程序创建一个全新的数据类型的问题时,首要步骤是开发其API。这个步骤属于设计任务,将在3.3节中讨论。我们已经了解了API作为客户端使用数据类型的规范,现在将讨论API如何实现数据类型的规范。

表3-2-2 用户自定义的Charge数据类型的API

2. 类(Class)

在Python语言中,我们把一个数据类型实现为一个类。我们已经了解到,按Python规范,一个数据类型的代码存储在一个单独的文件中,其文件名为类名的小写,后缀为.py。因而,我们把Charge类的代码存储在一个名为charge.py的文件中。为了定义一个类,使用关键字class,后跟类名,然后再跟冒号,最后跟一系列方法定义。我们的类遵循惯例,定义一个数据类型的三个关键功能:一个构造函数、若干实例变量和若干方法,接下来将分别展开讨论。由于这些功能彼此交错,所以讨论的内容在某种程度上会相互引用,所以最好的阅读方法是先依次阅读三个部分,然后重新阅读一遍,这样可以得到更多的启发和领悟。 ...

Get 程序设计导论:Python语言实践 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.