程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

How does Python implement singleton mode?

編輯:Python

1. Use decorators

import time
from xxlimited import foo
def singleton(cls):
instance={
}
def wrapper(*args,**kwargs):
if cls not in instance:
instance[cls]=cls(*args,**kwargs)
print(f'new')
return instance[cls]
return wrapper
@singleton
class Foo(object):
pass
fooArray =[]
for index in range(100):
fooArray.append(index)
print(index)
fooArray[index]=Foo()
print(f'1:fooArray[index]:{
fooArray[index]}****'+str(type(fooArray[index])))
time.sleep(0.1)

2. Use base classes

class Singleton(object):
def __new__(cls,*args,**kwagrs):
if not hasattr(cls,'_instance'):
cls._instance=super(Singleton,cls).__new__(cls,*args,**kwagrs)
return cls._instance
class Foo2(Singleton):
pass
fooArray =[]
for index in range(100):
fooArray.append(index)
print(index)
fooArray[index]=Foo2()
print(f'2:fooArray[index]:{
fooArray[index]}****'+str(type(fooArray[index])))
time.sleep(0.1)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved