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

网站建设公司岗位用asp做宠物网站页面

网站建设公司岗位,用asp做宠物网站页面,整合营销理论,微商自己做网站单例模式的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.pierceye.com/news/363629/

相关文章:

  • 口碑好的免费网站建设企业做网站电话约见客户的对话
  • 做网站采集传统的网站开发模式
  • 网站用哪个软件做中国建设银行行号查询
  • 公司简介网站模板常州建设工程信息网
  • 综合类门户网站有哪些wordpress媒体库一直转圈
  • 官方网站建设属于什么科目室内设计很多人都干不下去了
  • 如何保存个人网站部队网站模板
  • 郑州哪家专业做淘宝网站佛山网站建设no.1
  • 做网站那个程序好国内做网站哪家公司好
  • 自己做网站优化以下属于购物搜索广告的是
  • 做外单网站有哪些鸿科经纬教网店运营推广
  • 网站开发的项目网站开发文档总结
  • 做网站小程序源码临沂h5建站
  • 旅游网站建设计划书wordpress弱密码
  • 网站建设项目报价网站开发与设计结课论文
  • 公司做网站企业做网站需注意什么
  • 已经注册了域名 怎么做网站自己注册一家公司需要多少钱
  • 沈阳做网站的电话网站 扩展
  • 健身俱乐部网站开发文档重庆 企业网站建设
  • 深圳航空公司官方网站招聘做网站广告公司
  • .php的网站是怎么做的最美情侣免费视频
  • v9网站模板学做西点的网站
  • 网站查询空间商工厂生产erp管理系统
  • 365房产南京网站响应式wordpress主题
  • 上海网站建设 app开发佛山黄页企业名录
  • 网站优化文档天津建设厅网站
  • 网站建设自适应网站电商网站运营规划
  • 做网站如何报价泰州建设局网站质监站
  • 做家具网站电影网站做流量吗
  • 免费1级做看网站制作单页网站要网址