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

沧州网站建设公司旅游网站开发需求分析

沧州网站建设公司,旅游网站开发需求分析,网络营销课程教案,企业数字展厅单例模式 1.设计模式2.单例设计模式的应用场景3.new方法4. Python 中的单例 1.设计模式 设计模式 是 前人工作的总结和提炼#xff0c;通常#xff0c;被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理… 单例模式 1.设计模式2.单例设计模式的应用场景3.new方法4. Python 中的单例 1.设计模式 设计模式 是 前人工作的总结和提炼通常被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性可扩展性很好单例设计模式 – 目的 —— 让 类 创建的对象在系统中 只有唯一的一个实例 – 每一次执行类名() 返回的对象内存地址是相同的 2.单例设计模式的应用场景 • 音乐播放 对象 • 回收站 对象 • 打印机 对象 3.new方法 • 使用 类名() 创建对象时Python 的解释器 首先 会调用 new 方法为对象分配空间 • new 是一个由object 基类提供的 内置的静态方法主要作用有两个 – 1) 在内存中为对象 分配空间 – 2) 返回 对象的引用 • Python 的解释器获得对象的 引用 后将引用作为 第一个参数传递给 init 方法 重写 new 方法的代码非常固定 • 重写 new 方法 一定要 return super(). new (cls) • 否则Python 的解释器 得不到 分配了空间的 对象引用就不会调用对象的初始化方法 • 注意 new 是一个静态方法在调用时需要 主动传递 cls 参数 #!/usr/bin/python # author X_Dragon # E-mail:3270895551qq.com class MusicPlayer(object):def __new__(cls, *args, **kwargs):# 创建对象是new方法会被自动调用print(创建对象 分配空间)# 2.为对象分配空间isinstance(super().__new__(cls))# 3.返回对象的引用return isinstancedef __init__(self):print(播放器初始化) player MusicPlayer()print(player) 4. Python 中的单例 • 单例 —— 让 类 创建的对象在系统中 只有唯一的一个实例 定义一个 类属性初始值是None用于记录 单例对象的引用 重写 new 方法 如果 类属性 is None调用父类方法分配空间并在类属性中记录结果 返回 类属性 中记录的 对象引用 class MusicPlayer(object):#定义类的属性记录单例对象引用isinstanceNonedef __new__(cls, *args, **kwargs):# 1.判断类属性是否已经被赋值if(cls.isinstance is None):cls.isinstancesuper().__new__(cls)# 2.返回类属性的单例引用return cls.isinstance只执行一次初始化工作 • 在每次使用类名() 创建对象时Python 的解释器都会自动调用两个方法 – new 分配空间 – init 对象初始化 • 在上一小节对 new 方法改造之后每次都会得到 第一次被创建对象的引用 • 但是初始化方法还会被再次调用需求 • 让 初始化动作 只被 执行一次 解决办法 1 定义一个类属性init_flag 标记是否 执行过初始化动作初始值为False 2 在 init 方法中判断init_flag如果为False 就执行初始化动作 3 然后将init_flag 设置为True 4 这样再次 自动 调用 init 方法时初始化动作就不会被再次执行 了 class MusicPlayer(object):# 记录第一个被创建对象的引用 instance None # 记录是否执行过初始化动作 init_flag False def new (cls, *args, **kwargs): # 1. 判断类属性是否是空对象 if cls.instance is None: # 2. 调用父类的方法为第一个对象分配空间 cls.instance super(). new (cls)# 3. 返回类属性保存的对象引用 return cls.instance def init (self): if not MusicPlayer.init_flag: print(初始化音乐播放器)MusicPlayer.init_flag True# 创建多个对象 player1 MusicPlayer() print(player1)player2 MusicPlayer() print(player2) 相关阅读 链接: Python实现单例模式的5种方法
http://www.w-s-a.com/news/853149/

相关文章:

  • 洛阳免费网站建设qq是哪家公司开发的软件
  • 怎么做网站网页wordpress网址导航
  • 专业微信网站建设公司首选公司wordpress自动分类插件
  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名
  • 免费下载教学设计的网站送网站建设管理信息内容审核制度
  • 外贸专业网站的公司百度旗下13个app
  • 物理组简介 网站建设高师院校语言类课程体系改革与建设 教学成果奖申报网站
  • 爱网站无法登录怎么回事手表网
  • 网站建设公司现在还挣钱吗山西手动网站建设推荐平台
  • 重庆建设工程交易信息网站网站制作公司起名
  • 东莞寮步做网站的有吗企业宣传册制作
  • 做网站的软件是哪个上蔡做网站
  • 前后端分离实现网站开发紧急通知网页升级