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

推广公司兴田德润活动怎么样优化关键词排名

推广公司兴田德润活动,怎么样优化关键词排名,wordpress纯静态化插件,uzi视频网站谁做的单例模式的5种实现方式 1 使用模块 2 使用装饰器 3 使用类方法 4.基于new方法实现 5 基于metaclass方式实现 单例模式的5种实现方式 什么是单例模式? 单例模式是指:保证一个类仅有一个实例,并提供一个访问它的全局访问点# 线程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 _singleton@Singletonclass A(object):def __init__(self, x=0):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  # 原理就是 add=time_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):_instance=Nonedef __init__(self):pass@classmethoddef instance(cls, *args, **kwargs):if not cls._instance:cls._instance=cls(*args, **kwargs)return cls._instancea1=Singleton.instance()
a2=Singleton().instance()print(a1 is a2)

4 基于new方法实现

class Singleton(object):_instance=Nonedef __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(metaclass=SingletonType):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.ds6.com.cn/news/44751.html

相关文章:

  • 网站建设与管理适合男的还是女的如何对seo进行优化
  • 青海省建设厅网站 职称如何获取网站的seo
  • 国外好的室内设计网站cpc广告接单平台
  • 国外做机械设计任务的网站360网址导航
  • 如何在网站上做淘宝客推广百家港 seo服务
  • 建设大型网站设计公司客服系统网页源码2022免费
  • 做彩票网站捉怎么处理深圳发布最新通告
  • 网站seo关键字做什么推广最赚钱
  • 企业网站外包建设aso优化教程
  • 最专业网站建设哪家好网站推广营销运营方式
  • cms企业网站模板试分析网站推广和优化的原因
  • 乐华网络公司介绍广州seo排名收费
  • 新开装修公司取什么名好营销型网站建设优化建站
  • 网站做到赣州第一名要多少钱什么是网站推广策略
  • 网站建设与更新138ip查询网域名解析
  • 行唐县网站建设公司免费的行情网站app软件
  • 电子商务系统 网站建设网络推广网上营销
  • 百度网盘0基础网站开发教程网站建设公司地址在哪
  • 东莞模板建站哪家好博客seo怎么做
  • b站镜像网站是谁做的谈谈你对网络营销的看法
  • 表白网址在线制作平台百度的seo关键词优化怎么弄
  • 包头网站建设兼职如何在百度上开店铺
  • 衡水网站制作报价网站维护一般怎么做
  • 电子商务网官方网站搜狗网址导航
  • 有源码怎么在本地网站搭建陕西网站推广公司
  • 哈尔滨大型网站设计公司成都网站搜索排名优化公司
  • 淘宝网页版登录入口官方上海企业网站seo
  • 怎么提高网站流量重庆百度快照优化排名
  • 网页设计门户网站品牌营销策略论文
  • 网站设计平台老司机们用的关键词有哪些