确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,
单例模式是一种对象创建型模式
例:
class HTMtools(object):
__instance = None
__is_fist = True
def __new__(cls, *args, **kwargs):
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls.__instance
def __init__(self, num):
if HTMtools.__is_fist:
self.num = num
HTMtools.__is_fist = False
def get_average(self, num1, num2, num3):
return (num1 + num2 + num3) / 3
tools = HTMtools(10)
print(tools)
print(tools.num)
tools1 = HTMtools(100)
print(tools)
print(tools.num)
结果:
<__main__.HTMtools object at 0x000001B320C08400>
10
<__main__.HTMtools object at 0x000001B320C08400>
10
类创建出来的对象有且只有一个 也即是只会开辟一次内存
通过其类创建出来的对象的地址都是一样的