# 单例模式:永远使用同一个实例(对象)
"""应用场景
1、创建课重复利用的资源时,使用同一个实例,避免创建过多的对象浪费时间和资源
"""
# 示例1、演示单例模式
class Foo:
__bar = None
@classmethod
def bar(cls):
if cls.__bar:
return cls.__bar
else:
cls.__bar = Foo() # 实际上实在此处进行的实例化
return cls.bar()
"""
1、单例模式不要使用obj = class()这种方式创建对象(实际上对象是在 cls.__bar = Foo()这里创建的)
2、下面的代码只是在调用对象方法,无论执行多少次调用的都是同一个对象(实例)的方法,所以结果一样
"""
foo1 = Foo.bar()
print(foo1)
foo2 = Foo.bar()
print(foo2)
foo3 = Foo.bar()
print(foo3)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。