3.2.8 商业数据处理

面向对象程序设计的开发动力之一是用于商业数据处理的大量可靠软件的需求。作为说明,我们接下来将讨论一个数据类型的例子,该数据类型可以用于金融机构跟踪客户信息。

假设一个证券经纪人需要维护客户账户信息,包括各种股票的份额。也就是说,证券经纪人需要处理的一系列数据包括:客户姓名、持有不同股票的数量、每种股票的代码和份额和手头的现金数量。为了处理一个账户信息,证券经纪人至少需要定义在表3-2-11中API包含的运算操作:

表3-2-11 自定义数据类型Account的API

很显然,证券经纪人需要买入股票、卖出股票、为客户提供报表,但理解此类数据处理的首要任务是考虑API中的StockAccount()构造函数和write()方法。客户信息必须长久保存,所以需要保存到一个文件或数据库。为了处理一个账户,客户端程序必须从对应的文件中读取信息;根据需求处理信息;并且如果信息发生更改,则将信息写入文件,并保存文字供以后使用。为了实现此类处理,我们需要一种用于账户信息的文件格式和内部表述方式(或数据结构)。这种情况与第1章讨论的矩阵处理类似,矩阵处理定义了一种文件格式(行数和列数,后跟按行优先顺序排列的元素)和一种内部表示(Python二维矩阵),以帮助我们编写随机冲浪者和其他应用程序。

作为一个(古怪)运行的例子,我们设想证券经纪人持有阿兰·图灵(Alan Turing)软件公司一个小的股票投资组合。作为题外话,被称为计算机科学之父的阿兰·图灵一生丰富多彩,值得进一步研究。在他生平的许多事情中,他从事过有助于第二次世界大战结束的计算密码学研究。他为现代理论计算机科学发展奠定了基础,设计和制造了第一台计算机。他还是人工智能研究的先驱者。也许可以假设,在上个世纪中期,作为学术研究者,不管阿兰·图灵的财务状况如何,只要他投资小部分资产,就可足够乐观地估计其对当代计算软件的潜在巨大影响。 ...

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.