Python 实现单例模式

简介:

Python 实现单例模式

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 使用Python实现单例模式
 
# 方法一: 使用__new__方法
class  SingleTon( object ):
     def  __new__( cls * args,  * * kwargs):
         if  not  hasattr ( cls '_instance' ):
             cls ._instance  =  object .__new__( cls * args,  * * kwargs)
         return  cls ._instance
 
 
class  TestClass(SingleTon):
     =  1
 
 
# 方法二: 使用装饰器(decorator)
def  SingleTon1( cls * args,  * * kwargs):
     instances  =  {}
     def  _singleTon():
         if  cls  not  in  instances:
             instances[ cls =  cls ( * args,  * * kwargs)
         return   instances[ cls ]
     return  _singleTon
 
 
@SingleTon1
class  TestClass1( object ):
     =  1
 
 
 
# 共享属性  属性是共享的,但是并非单例模式
class  SingleTon3( object ):
     _state  =  {}
     def  __new__( cls * args,  * * kwargs):
         obj  =  object .__new__( cls * args,  * * kwargs)
         obj.__dict__  =  cls ._state
         return  obj
 
 
class  TestClass3(SingleTon3):
     =  1
 
test1  =  TestClass3()
test2  =  TestClass3()
test1.a  =  2
print (test1.a)
print (test2.a)
print (test1)
print (test2)



本文转自 许大树 51CTO博客,原文链接:http://blog.51cto.com/abelxu/1967293,如需转载请自行联系原作者
相关文章
|
6月前
|
Python
如何在Python中实现单例模式?
【1月更文挑战第15天】
42 2
|
18天前
|
设计模式 存储 数据库连接
Python编程中的设计模式之美:单例模式的妙用与实现###
本文将深入浅出地探讨Python编程中的一种重要设计模式——单例模式。通过生动的比喻、清晰的逻辑和实用的代码示例,让读者轻松理解单例模式的核心概念、应用场景及如何在Python中高效实现。无论是初学者还是有经验的开发者,都能从中获得启发,提升对设计模式的理解和应用能力。 ###
|
2月前
|
设计模式 缓存 数据库
Python中的单例模式
单例模式确保一个类只有一个实例,并提供全局访问点。此模式常用于共享资源或限制资源访问,可避免资源浪费并简化全局访问。其实现方法包括使用模块级变量、装饰器或元类。尽管单例模式能简化访问和初始化,但也可能引入全局状态,影响代码的可维护性。适用于配置管理、数据库连接池等场景。
|
3月前
|
设计模式 存储 数据库连接
Python设计模式:巧用元类创建单例模式!
Python设计模式:巧用元类创建单例模式!
47 0
|
5月前
|
设计模式 测试技术 数据库
Python单例模式详解与实际应用
单例模式是一种特殊的设计模式,它通过限制一个类的实例数量为一个来保证只有一个实例被创建,并且提供一个全局访问点以供其他对象使用。
79 3
|
4月前
|
设计模式 缓存 数据库
Python中的单例模式是什么?
**摘要:** 单例模式是一种设计模式,确保类只有一个实例并提供全局访问点。常用于共享资源、配置管理、数据库连接池、日志记录和缓存。Python中可使用模块级变量、装饰器或元类实现单例。需谨慎使用,以避免全局状态导致的复杂性。
|
6月前
|
存储 安全 Python
如何在Python中实现一个单例模式,确保在多线程环境中也是安全的?
【2月更文挑战第5天】【2月更文挑战第11篇】如何在Python中实现一个单例模式,确保在多线程环境中也是安全的?
178 1
|
6月前
|
存储 安全 Python
|
Python
62 python - 单例模式
62 python - 单例模式
30 0
|
缓存 安全 开发者
Python 单例模式讲解和代码示例
Python 单例模式讲解和代码示例
47 0