当前位置: 首页 > news >正文

建立网站的方案怎么在网站后台加框框

建立网站的方案,怎么在网站后台加框框,网站维护费用一年多少,北京服务设计单例模式的5种实现方式 1 使用模块 2 使用装饰器 3 使用类方法 4.基于new方法实现 5 基于metaclass方式实现 单例模式的5种实现方式 什么是单例模式#xff1f; 单例模式是指#xff1a;保证一个类仅有一个实例#xff0c;并提供一个访问它的全局访问点# 线程1 执行#x…单例模式的5种实现方式 1 使用模块 2 使用装饰器 3 使用类方法 4.基于new方法实现 5 基于metaclass方式实现 单例模式的5种实现方式 什么是单例模式 单例模式是指保证一个类仅有一个实例并提供一个访问它的全局访问点# 线程1 执行 cursor.excute(select * from user)# 线程2执行 cursor.excute(select * from books)# 线程1 执行 cursor.fetchAll() # 拿出查询到的数据# django 每个线程一个连接对象---》 连接池1 使用模块 其实Python 的模块就是天然的单例模式因为模块在第一次导入时会生成 .pyc 文件当 第二次导入时就会直接加载 .pyc 文件而不会再次执行模块代码。 因此我们只需把相关的函数和数据定义在一个模块中就可以获得一个单例对象了。 如果我们真的想要一个单例类可以考虑这样做1.新建一个mysingleton.pyclass Singleton(object):def foo(self):passsingleton Singleton()2.将上面的代码保存在文件 mysingleton.py 中要使用时直接在其他文件中导入此文件中的对象 这个对象即是单例模式的对象 from a import singleton 2 使用装饰器 def Singleton(cls):instance Nonedef _singleton(*args, **kargs):nonlocal instanceif not instance:instance cls(*args, **kargs)return instancereturn _singletonSingletonclass A(object):def __init__(self, x0):self.x xa1 A(2)a2 A(3)print(a1.x)print(a2.x)print(a1 is a2) # True 回顾装饰器是什么 import time# 装饰器是什么?装饰器的作用是什么装饰器是闭包函数的一个典型应用它是什么在不改变函数源代码和调用方式idea基础上为函数增加新功能 # def add(a, b): # time.sleep(2) # return a bdef time_total(func):def inner(a, b):start time.time()res func(a, b)print(运行时间是, time.time() - start)return resreturn inner# add time_total(add) # res add(3, 4) # print(res)time_total # 原理就是 addtime_total(add) def add(a, b):time.sleep(2)return a bres add(3, 4) print(res) print(add.__name__) # 就是inner# 什么是闭包函数参数不是传进来的是用了它上一层作用域范围的变量 1 定义在函数内部2 对外部作用域有引用(如果使用外部的可变类型则直接使用如果是不可变类型需要使用nonlocal)例如def add():a 10def inner():nonlocal aa 1print(闭包内部的值是, a) # 11inner()print(闭包外部的值是, a) # 11add()3 使用类方法 class Singleton(object):_instanceNonedef __init__(self):passclassmethoddef instance(cls, *args, **kwargs):if not cls._instance:cls._instancecls(*args, **kwargs)return cls._instancea1Singleton.instance() a2Singleton().instance()print(a1 is a2)4 基于new方法实现 class Singleton(object):_instanceNonedef __init__(self):passdef __new__(cls, *args, **kwargs):if not cls._instance:cls._instance object.__new__(cls)return cls._instanceobj1 Singleton() obj2 Singleton() print(obj1 is obj2)5 基于metaclass方式实现 # 产生类这个对象的类称之为元类 # 类中的 __call__什么时候回触发对象()会触发 class SingletonType(type):_instance Nonedef __call__(cls, *args, **kwargs):if not cls._instance:cls._instance object.__new__(cls)cls._instance.__init__(*args, **kwargs)return cls._instanceclass Foo(metaclassSingletonType):def __init__(self, name):self.name nameobj1 Foo(name) obj2 Foo(name) print(obj1.name) print(obj1 is obj2) # True# __init__ 和 __new__ 区别是什么 # 1 类()---触发类中的__init__----对象已经创建出来了不能拦截住做成单例了 # 2 类----》触发类中的__new__----》真正的创建对象判断之前有没有创建过如果创建过直接返回 # 3元类---》类()---触发元类的__call__---》判断之前有没有创建过如果有直接返回
http://www.w-s-a.com/news/879589/

相关文章:

  • 福建建设培训中心网站网站建站服务公司地址
  • 青岛网站优化快速排名企业网址怎么整
  • 做公司网站用什么系统seo搜索排名优化方法
  • dw怎么做网站标题图标做网站重庆
  • 机场建设相关网站公司官网设计制作
  • 大学网站建设的目标技术支持 优府网络太原网站建设
  • wordpress设置密码访问带提示广州做网站优化哪家专业
  • 如何帮人做网站赚钱西安室内设计公司排名
  • 房产网站建设产品网站域名和邮箱域名
  • 网站建设核心优势seo求职信息
  • 网站手册自己在百度上可以做网站吗
  • 影楼网站源码建行业网站的必要性
  • 深圳app网站设计软件开发公司税收优惠政策
  • 北京市中关村有哪家可以做网站维护客户管理系统 wordpress
  • 做网站拉客户有效吗全景图网页制作工具
  • 网站建设公司行业建设网站需要提供什么资料
  • 别人的做网站网页打不开图片
  • 北京专业网站设计推荐怎么建立网站网址
  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号
  • 设计类书籍网站江苏网站建设简介模板
  • 手机企业网站推广c 手机app开发
  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理