python 如何创建的对象之实例创建__new__

目录

 

 (一)出现问题之复写__new__忘记返回

(二)解决方法之利用父类的__new__创建对象并返回

 (三)我们可以创建很多对象,而且这些对象地址都不相同。

那我们想让这些对象地址都相同该怎么办? 就要在我们复写的__new__中做手脚了,

这涉及后面的设计模式,等我学会再来贴链接


 (一)出现问题之复写__new__忘记返回

class Person(object):
    # 初始化
    def __init__(self):
        print('init......')

    #
    def __new__(cls, *args, **kwargs): # 复写了object的__new__,返回创建的新对象(这里没返回所以下面出现None)
        print('new......')


person = Person()
print(person)  # 上面的new没返回对象,所以person就没有值,所以None

结果: 

python 如何创建的对象之实例创建__new__

(二)解决方法之利用父类的__new__创建对象并返回

python 如何创建的对象之实例创建__new__

 

 (三)我们可以创建很多对象,而且这些对象地址都不相同。

那我们想让这些对象地址都相同该怎么办? 就要在我们复写的__new__中做手脚了,

这涉及后面的设计模式,等我学会再来贴链接