class Foo:
def __init__(self, name, age):
self.name = name
self.age = age
# obj = Foo() # obj对象,obj也称为Foo类的实例(实例化)
# obj1 = Foo()
# obj2 = Foo()
# obj3 = Foo()
# 上述的obj1、obj2、obj3分别是三个不同的对象(实例)
单例模式:单个实例,永远使用同一份实例(对象)。
class Foo:
__v = None
@classmethod
def get_instance(cls):
if cls.__v:
return cls.__v
else:
cls.__v = Foo()
return cls.__v
# 不再使用 类()创建对象
obj = Foo.get_instance()
obj1 = Foo.get_instance()
print(obj1)
obj2 = Foo.get_instance()
print(obj2)
obj3 = Foo.get_instance()
print(obj3)
# <__main__.Foo object at 0x000001C2454BF1D0>
# <__main__.Foo object at 0x000001C2454BF1D0>
# <__main__.Foo object at 0x000001C2454BF1D0>