12.1 类、状态和表示
在一些情况下,我们需要创建为远程客户端提供数据的服务器。在一些其他情况下,我们可能希望使用来自远程计算的数据,也可能会遇到一种混合的情况,就是我们的应用程序是远程计算机的一个用户,也是移动应用程序的服务器。有许多的情况我们的应用程序会使用保存的远程计算机的对象。
我们需要一个能将对象在不同进程间传输的方法,可以将一个大问题分解为两个更小的问题。不同的网络协议可以帮我们将字节流从一个主机上的某个进程传输到另一台主机的某个进程中。序列化可以将对象转换为字节流。
与对象状态不同,我们用一种完全独立并且简单的方法传输类定义,直接用源代码来交换类定义。如果我们需要为远程主机提供某个类的定义,那么我们将Python源码发给该主机。为了让代码可以正常工作,必须正确地进行安装,这通常由管理员手动完成。
网络用于传输字节流。因此,我们必须用字节流表示一个对象实例中变量的值。通常用两个步骤将对象转换为字节流,首先用字符串表示一个对象的状态,然后基于这个字符串以某种标准的编码方式提供字节表示。
