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

网站开发 基础教学视频百度seo优化公司

网站开发 基础教学视频,百度seo优化公司,云南网站建设效果好吗,企业网站建设的意义1 python类装饰器编写单体类 类装饰器用于装饰类,用于管理类自身,或用于管理实例创建调用。 单体类,不管创建多少次实例,都只有一个实例的类。可以通过类装饰器管理装饰类的全部实例,实现单体类。 1.1 字典存放单体…

1 python类装饰器编写单体类

类装饰器用于装饰类,用于管理类自身,或用于管理实例创建调用。

单体类,不管创建多少次实例,都只有一个实例的类。可以通过类装饰器管理装饰类的全部实例,实现单体类。

1.1 字典存放单体类

描述

通过类装饰器创建的类实例存放在全局字典,实现单体类。

(1) 定义全局字典instances;

(2) 类作为字典键,实例为字典值,不存在则创建,否则返回;

(3) 嵌套函数定义类装饰器,入参为类cls,返回可调用函数;

示例

>>> instances={}
>>> def getInstance(cls,*args):if cls not in instances:instances[cls]=cls(*args)return instances[cls]>>> def singlecls(cls):def onCall(*args):return getInstance(cls,*args)return onCall>>> @singlecls
class Clerk:def __init__(self,name,rate,days):self.name=nameself.rate=rateself.days=daysdef pay(self):return self.rate*self.days>>> @singlecls
class TestSingleCls:def __init__(self,val):self.attr=val>>> C1=Clerk('梯阅线条',2000,22)
>>> c2=Clerk('tyxt',2100,23)
>>> C1.name,C1.pay()
('梯阅线条', 44000)
>>> c2.name,c2.pay()
('梯阅线条', 44000)
>>> tsc1=TestSingleCls(9555)
>>> tsc2=TestSingleCls(9556)
>>> tsc1.attr,tsc2.attr
(9555, 9555)
>>> id(C1),id(c2)
(11409136, 11409136)
>>> id(tsc1),id(tsc2)
(11410160, 11410160)

1.2 nonlocal单体类

描述

通过嵌套函数的作用域来创建单体类。装饰的每个类使用各自的封闭作用域。

(1) 定义嵌套变量instance为None;

(2) 通过nonlocal为instance赋值,如果为None则创建实例,否则返回实例;

(3) 嵌套函数定义类装饰器,入参为类cls,返回可调用函数;

示例

>>> def singlecls(cls):instance=Nonedef onCall(*args):nonlocal instanceif instance is None:instance=cls(*args)return instancereturn onCall>>> @singlecls
class Clerk:def __init__(self,name,rate,days):self.name=nameself.rate=rateself.days=daysdef pay(self):return self.rate*self.days>>> C1=Clerk('梯阅线条',2000,22)
>>> C2=Clerk('tyxt',2100,23)
>>> id(C1)==id(C2),id(C1),id(C2)
(True, 11503152, 11503152)
>>> C1.name,C2.name
('梯阅线条', '梯阅线条')

1.3 可调用类实例实现单体类

描述

通过可调用类实例的装饰器实现单体类。

(1) 实例属性instance初始化为None;

(2) 如果instance为None则创建实例,否则返回实例;

(3) 定义可调用类实例,返回装饰类的实例;

示例

>>> class SingleCls:def __init__(self,cls):self.cls=clsself.instance=Nonedef __call__(self,*args):if self.instance is None:self.instance=self.cls(*args)return self.instance>>> @SingleCls
class Clerk:def __init__(self,name,rate,days):self.name=nameself.rate=rateself.days=daysdef pay(self):return self.rate*self.days>>> C1=Clerk('梯阅线条',2000,22)
>>> C2=Clerk('tyxt',2100,23)
>>> id(C1)==id(C2),id(C1),id(C2)
(True, 11615440, 11615440)
>>> C1.name,C2.name
('梯阅线条', '梯阅线条')
http://www.khdw.cn/news/39503.html

相关文章:

  • 自己做的网站如何让百度收录网页制作的步骤
  • bilibili推广网站百度海南分公司
  • 平台型网站如何推广百度怎么做关键词优化
  • 台州做网站seo的郑州做网络优化的公司
  • 凡客属于什么档次的品牌seo有哪些作用
  • 芜湖seo网站优化百度seo关键词点击软件
  • wordpress twenty fourteen主题做的演示网站百度推广怎么收费标准
  • 网站开发文案手机app推广平台
  • 宁津做网站公司广告推广费用一般多少
  • 建设银行住房公积金预约网站seo怎么做?
  • wordpress取消邮箱注册seo是什么职位的简称
  • 响应式手机网站制作微信营销的成功案例
  • 织梦后台点击网站主页搜索热词排名
  • 网站建设的意义怎么写seo查询 站长之家
  • 做印刷品的素材网站郑州网站关键词排名技术代理
  • 网站服务器速度慢百度seo引流怎么做
  • 自己做网站iis设置已备案域名交易平台
  • 苏州网站定制公司移动端排名优化软件
  • 廊坊网站优化搜索引擎推广seo
  • 微信公众号h5商城网站开发廊坊关键词快速排名
  • 绵阳网站建设scmmwl免费seo视频教程
  • 注册公司要花多少费用网络优化培训要多少钱
  • 东莞凤岗做网站google官网登录入口
  • .red域名做网站好不好深圳网站优化推广
  • 做网站淘宝条形码2022年新闻摘抄十条
  • 深圳外贸网站制作价格seo互联网营销培训
  • 58同城做公司网站怎修改关键词优化系统
  • 企业网站托管的方案加入网络营销公司
  • 小程序网站建设的公司品牌营销策划方案怎么做
  • l5手机网站模板宣传网页制作