8.17 创建不调用init方法的实例

    可以通过 new() 方法创建一个未初始化的实例。例如考虑如下这个类:

    下面演示如何不调用 方法来创建这个Date实例:

    当我们在反序列对象或者实现某个类方法构造函数时需要绕过 init() 方法来创建对象。例如,对于上面的Date来讲,有时候你可能会像下面这样定义一个新的构造函数 :

    同样,在你反序列化JSON数据时产生一个如下的字典对象:

    当你通过这种非常规方式来创建实例的时候,最好不要直接去访问底层实例字典,除非你真的清楚所有细节。否则的话,如果这个类使用了 slots 、properties 、descriptors 或其他高级技术的时候代码就会失效。而这时候使用 方法会让你的代码变得更加通用。

    原文: