当前位置:   article > 正文

python 单例模式 线程安全_python之单例模式

python 单例类 线程安全

在说单例模式前我们先看python在对类对象实例化及调用时都做了什么?

python在对类对象实例化及调用时用到了__init__和__new__方法。下面首先通过__init__和__new__方法的调用来了解这一过程。

一、__new__和__init__的区别

__new__的作用:创建对象、分配内存

__init__的作用:初始化对象

代码演示如下:

#__new__和__init__的区别

#先通过__new__创建对象,分配内存,然后使用__init__初始化对象#所有的类都继承于object,__new__属于object中的方法。#调用我们平时定义的类时会自动的执行object类中的__new__方法创建对象,分配内存。

#下面将__new__ 方法重写后,可以看到从创建对象到初始化的全过程

classmyclass(object):def __init__(self): #初始化对象

print('initialization')def __new__(cls, *args, **kwargs):print('Create object,assign memory')

obj= super().__new__(cls) ##创建对象、分配内存

returnobjdefadd(self,a ,b):return a +bif __name__ == '__main__':

A=myclass()print(A.add(2,3))

运行结果:

Create object,assign memory

initialization5

以上结果可以看出,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/475928
推荐阅读
相关标签
  

闽ICP备14008679号