python new_python __new__中单例的作用

#单例的作用就是为了节约系统资源,每每生成一个对象的时候都回去占用内存空间,因此单例就可以结局这个问题#非单例模式,非单例模式在每次实例化的时候都会去调用内存生,这样调用的次数多了,就可能会造成内存的浪费

class A(object):

pass

a=A()

b=A()

print(id(a))

print(id(b))

输出结果

3000151570976

3000151571312

#单例模式

#讲解:在类开始之前会调用类的new方法去生成一个对象,所以我们只需要在类调用钱做处理就好了

class B(object):

__instrance = None #定义一个变量

def __new__(cls):

if cls.__instrance == None:

cls.__instrance = object.__new__(cls) #如果变量是None说明是第一次调用,就生成一个对象,

return cls.__instrance

else:

return cls.__instrance #如果不是就直接返回上次生成好了的对象

c=B()

d=B()

print(id(c))

print(id(d))

输出结果

3000151571592

3000151571592

#instrance :实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值