2.6.2 类
不论是在python默认的OOP系统还是我们在此克隆的OOP系统内,类本身也可以是一种对象。因此必要时可以在类的内部创建类。但考虑到我们克隆OOP的本意,假设“类中没有类”能够大大减轻工作量。但在python中,几乎每个类都有一个内部类type,此处不做详谈。对于一个类而言,不仅要能“获取”属性与“设置”属性,还需要有“新建”实例的功能。我们通过在类字典中创建键值‘new’来实现该功能。
在类中检索不到相应属性名称时,会自动跳到基类中去寻找。在类中我们也不需要考虑方法绑定的实现,因为方法绑定是为对象服务的。
初始化(Initialization)
在make_class函数中定义一个名为new函数,用于对传入的‘new’进行反应。new函数体中调用了一个名为init_instances的函数。该函数体内调用了之前我们实现过的make_instance函数,用于创建一个新的实例。
我们可以创建类,还能类中设置属性和获取属性值。我们还可以在类中创建实例,并在其中设置与获取实例属性。不仅如此,我们还可以绑定并调用方法。终于,我们完成了对OOP系统的简单复制。