广州番禺Python, Java小班周末班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
2.2.1 单例模式
单例模式是指一个类只对应一个实例,通过类的全局方法来访问该实例。使用单例模式可以节约系统资源(时间+空间),避免对共享资源的重复占用,提升系统性能。
2.2.2 适用场景
在仅需一个实例对象就能实现需求的场景中,就应该使用单例模式,比如MySQL,Redis等数据库的连接对象,全局的计数器对象。单例模式的实现方式有饿汉式和懒汉式。饿汉式线程安全,在类加载时即被创建。懒汉式仅在需要的时候才被创建,会有线程安全的问题。
2.2.3 源码实现
现在通过单例模式来实现一个全局的计数器对象Counter, 以下为饿汉模式的单例:
# __author__ = 薯条老师,微信公众号:薯条编程 """ 单例模式是指一个类只对应一个实例,通过类的全局方法来访问该实例 """ """ (1) 定义一个全局的计数器对象Counter,以饿汉模式中的单例来实现 """ class Counter: __instance = None """ (2) 重写__new__方法来实现饿汉模式的单例 """ def __new__(cls): if not cls.__instance: cls.__instance = super().__new__(cls) return cls.__instance def __init__(self): self._count = 0 if "_count" not in self.__dict__ else self.__dict__["_count"] @property def count(self): return self._count @count.setter def count(self, value): self._count += value if __name__ == "__main__": counter = Counter() counter.count = 1 counter = Counter() counter.count = 1 # 输出的结果为2,说明为同一个对象 print(counter.count)
以下为懒汉模式的单例:
# __author__ = 薯条老师,微信公众号:薯条编程 """ 单例模式是指一个类只对应一个实例,通过类的全局方法来访问该实例 """ """ (1) 定义一个全局的计数器对象Counter,以懒汉模式中的单例来实现 """ class Counter: __instance = None """ (2) 通过类方法来实现懒汉模式中的单例 """ @classmethod def get_instance(cls): if not cls.__instance: cls.__instance = cls() return cls.__instance def __init__(self): self.__count = 0 @property def count(self): return self.__count @count.setter def count(self, value): self.__count += value if __name__ == "__main__": counter = Counter.get_instance() counter.count = 1 counter = Counter.get_instance() counter.count = 1 print(counter.count)
2.2.4 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4) Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: