使用场景
当只需要创建一次对象,或者使用一个对象来对全局进行控制时,使用单例模式
懒汉式
饿汉式,更浪费一些资源,但是能保证线程安全
Python3 使用元类来创建,推荐!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@Time : 2023/05/11 21:56:56
@Author : sunqg
@Desc : 使用元类实现单例模式
'''
from typing import Any
class SingletonMeta(type):
_instance = {}
def __call__(cls, *args: Any, **kwds: Any) -> Any:
if cls not in cls._instance:
cls._instance[cls] = super.__call__(*args, **kwds)
return cls._instance[cls]
class demo(metaclass=SingletonMeta):
print("test")
if __name__ == '__main__':
t1 = demo()
t2 = demo()
print(t1 is t2)
"""out
test
True
"""
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: #yyds干货盘点# LeetCode程序员面试金典: N 皇后
题目: 按照国际象棋的规则,皇后可以与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不…