设计模式
总共23种 分为三大类
创建型 结构性 行为性
"""
设计模式是前辈们发明的经过反复验证用于解决固定问题的固定套路
"""
单列模式
是一个类只能产生一个对象 节约资源
应用场景:
有一个类中有很多非常牛逼的绑定给对象的方法
我们需要在很多地方使用它 那么不同的程序员来用不知道有没有产生对象
所以自己会创建一个新对象 如此往复则会造成资源的浪费
如何实现:
我们需要在类实例化对象的时候进行干涉 >>>: 元类
单例模式:(可以有很多种编写方式)
class Single(type):
new_obj = None
def __call__(self, *args, **kwargs):
if not self.new_obj:
obj = super().__call__(*args, **kwargs)
self.new_obj = obj
return self.new_obj
return self.new_obj
class MyClass(metaclass=Single):
def __init__(self, name):
self.name = name
obj1 = MyClass('bob')
obj2 = MyClass('kavin')
print(id(obj1), id(obj2))
print(obj1.__dict__, obj2.__dict__)
'''单列模式实现很多 方式不固定'''

pickle模块
'''该模块只支持python 兼容性较差'''
需求:将对象保存到文件 并且取出来之后使用对象的功能
import pickle
class MyClass(object):
school = 'school'
def __init__(self, name):
self.name = name
def choose_course(self):
print('%s正在选课' % self.name)
obj = MyClass('bob')
obj.choose_course()
with open(r'%s' % obj.name,'wb')as f:
pickle.dump(obj, f)
with open(r'bob', 'rb')as f:
data = pickle.load(f)
print(data)
print(data.name)
print(data.school)

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人