zoukankan      html  css  js  c++  java
  • python 单例模式实现

    Python单例模式实现

    import settings
    import threading
    
    
    class TournamentRoomConfig():
        """
        房间类
        """
    
        _instance_lock = threading.Lock()
    
        def __init__(self, room_id):
            # room_id为T0或T0_2020-07-11
            self.room_config = settings.tournamen_dict["tournamentRoom"][room_id.split("_")[0]]  # 房间配置信息
    
            self.runTime = self.room_config.get("runTime", 0)  # 房间持续时间
            self.readyTime = self.room_config.get("readyTime", 0)  # 房间准备时间
            self.runTime = 10
            self.readyTime = 5
            self.userCount = self.room_config.get("userCount", 0)  # 房间人数上限
            self.poolforeach = self.room_config.get("poolForEach", 0)  # 奖池滚动累加数值
            self.prices = self.room_config.get("prices", [])  # 奖励比例
            self.BigWinUserCount = self.room_config.get("BigWinUserCount", 0)
            self.guaranteeReward = self.room_config.get("guaranteeReward", 0)  # 保底奖励
            self.minWinUserCount = self.room_config.get("minWinUserCount", 0)
            self.robotCount = self.room_config.get("robotCount", 0)  # 机器人人数
            self.robotBet = self.room_config.get("robotBet", 0)  # 机器人平均bet
            self.traceLimit = self.room_config.get("traceLimit", 0)  # 机器人追赶上限
            self.type = self.room_config.get("type", "")
            self.tourRoomRunTime = self.room_config.get("tourRoomRunTime", 0)
            self.tierCount = self.room_config.get("tierCount", {})  # 各种机器人类型人数
            self.roomType = self.room_config.get("roomType", "")  # 房间类型
    
        def __new__(cls, *args, **kwargs):
            if not hasattr(TournamentRoomConfig, "_instance"):
                with TournamentRoomConfig._instance_lock:
                    if not hasattr(TournamentRoomConfig, "_instance"):
                        TournamentRoomConfig._instance = object.__new__(cls)
            return TournamentRoomConfig._instance
    
    # s1 = TournamentRoomConfig("T0")
    # s2 = TournamentRoomConfig("T4")
    #
    # print(id(s1))
    # print(id(s2))
  • 相关阅读:
    360云盘、百度云、微云……为什么不出 OS X(Mac 端)应用呢?(用户少,开发成本高)(百度网盘Mac版2016.10.18横空出世)
    其实 Dropbox 的缺点也很明显,速度慢,空间小(我对国内的网盘的建议)
    为什么百度云、360云盘等都取消了同步盘功能?
    验证API
    操作系统进程压榨案例
    查询功能
    JavaScript 动画库和开发框架
    指针
    Attribute Routing
    自定义验证特性
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/13993867.html
Copyright © 2011-2022 走看看