1.异常 处理
    在程序执行过程中 ,发生,影响程序的正常运行
    在python中 异常就是一个错误
   try  ....  except....捕获异常
    try  用来检测try中语句块中是否有错误  , 有 错误,让except 捕捉异常并处理
    try 可以和except 或者 finally 语句一起执行  也可以一起执行
  作用: 有效的避免了程序报错退出,增强了代码的稳定性
 
       try
            代码...
       except Exception #  Ecxeption是所有异常的基类  可以捕获所有类型的异常
      except 类名  as  错误类型
             异常处理 
  常见 报错  :  FileNotFountError   文件不存在 NameError: 未声明/初始化错误  Exception: 常规错误基类
    else 在异常中的作用
      try :  
          尝试执行的代码..
      except:
            如果有异常,交给except处理异常 
       else:
            如果没有异常,执行else中的语句
  
   finally :
     try:
       尝试执行的代码
     ....
     finally  
       无论是否发生异常都执行finally  
  异常传递的概念
     
异常处理  函数嵌套
   
         
 自定义异常的使用方法
    raise: 使用该语句  可以自动出发异常([抛出异常)
      
python模块
   python 模块 是一个python文件,任何以.py结尾的,都可以作为模块导入  模块内容可以是全局变量,函数,类和执行代码
    引入模块的不同方式
      import 文件名 ----  模块
   局部导入
     from 文件名  import  名字    函数名,类名,变量名
      名字  可以是变量名 函数名,类名
      文件名 导入的作为模块的那个.py文件
    from 文件名  import  *
          把一个模块所有的内容都导入当前的空间
         __all__=['','']  控制模块 导入的内容
 
    __name __
       表示模块的名字的一个系统变量
         主动执行文件时 __name__ 是 :__main__
         作为模块导入时 __name__ 是:  moddle
 
import  sys
sys.path       获得python解释器查询目录
  
     包
      在项目中的子文件夹
      作用:对同类功能的模块进行目录的整合
      在包中的子文件夹必须加包名,即使是同级
      import  .包名.函数名
    __init__.py   
    python2中没有__init__.py文件就会报错
 
   __new__()
       创建对象时自动调用该方法
       开发者可以实现new方法来自定义对象的创建过程
     是一个静态方法
        class Dog:
    # __new__ 是静态方法,当创建对象的时候自动调用该方法
    def __new__(cls, *args, **kwargs):
        new_obj = object.__new__(cls) # 创建一个新的对象  cls 代表当前类对象
        return new_obj
 
wc  = Dog()
print(wc)
  
     单例
        回收站是单例模式的应用
        确保某一个类只会创建出一个实例,称为单例类
     模式
        好处:降低开发成本,提高开发效率,便于后期维护
     单例模式:  某个类 只能创建一个对象,无论使用什么方法,创建出来的对象始终只有一个,即使创建出N个对象,但是所有对象指向的是同一个空间的地址
  lass Shopping(object):
    __instance = None   # 用来标识是否创建多对象
    __isinit = False    # 记录是否已经进行了初始化
    def __new__(cls, *args, **kwargs):   # 创建对象的时候自动调用该方法
        if cls.__instance is None:    # 判断是否创建过对象
            cls.__instance=  object.__new__(cls)
        return cls.__instance
    # 初始化一次__init__
    def __init__(self):
        if Shopping.__isinit ==False:
            self.price = 0
            Shopping.__isinit=True

day12 异常 模块 单例的更多相关文章

  1. python小总结3(异常、单例设计模式)

    一.异常 AttributeError:试图访问一个对象没有的成员[属性和方法] ValueError:值错误,传入了一个不期望的值 ImportError:无法导入模块或者包:基本上路径问题 Ind ...

  2. Java---设计模块(单例的变形)(多例)

    设计模式1--单例变形(多例) ★ 缓存在单例中的使用 缓存在编程中使用很频繁,有着非常重要的作用,它能够帮助程序实现以空间换取时间,通常被设计成整个应用程序所共享的一个空间,现要求实现一个用缓存存放 ...

  3. javase基础笔记4——异常/单例和类集框架

    继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public 异常 ...

  4. 单例、异常、eval函数

    一.单例 01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码.让代码更容易被他 ...

  5. JavaScript 单例,Hash,抛异常

    1. 单例 ECMA 5 版 记得以前写过几种单例实现,找不到了... function Singleton() { if (this.constructor.instance) { return t ...

  6. Java---设计模块(设计模块的简介及最简单的俩个单例代码加测试)

    设计模式学习概述: ★ 为什么要学习设计模式 1.设计模式都是一些相对优秀的解决方案,很多问题都是典型的.有代表性的问题,学习设计模式,我们就不用自己从头来解决这些问题,相当于在巨人的肩膀上,复用这些 ...

  7. 我心中的核心组件(可插拔的AOP)~第十五回 我的日志组件Logger.Core(策略,模版方法,工厂,单例等模式的使用)

    回到目录 之前的讲过两篇关于日志组件的文章,分别是<第一回  日志记录组件之自主的Vlog>和<第三回  日志记录组件之log4net>,而今天主要说一下我自己开发的另一种日志 ...

  8. iOS开发:XCTest单元测试(附上一个单例的测试代码)

    测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编 ...

  9. Python:Day25 成员修饰符、特殊成员、反射、单例

    一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...

随机推荐

  1. git push到远程新分支

    获取远程代码并在本地切换到一个新分支修改后,想要 push 到远端与原来不同的新分支,可以使用下面的命令实现: git push origin 本地分支:远端希望创建的分支 上面的本地分支 是基于拉取 ...

  2. 切换npm源的几种方法

    我们在使用官方提供的npm源安装各种依赖包的时候,下载速度会很慢,通常需要更换npm源. 我们可以在终端中输入命令 npm config list 来查看 npm 源地址,默认地址为 metrics- ...

  3. [redis] -- 持久化机制篇

    快照(snapshotting)持久化(RDB) 该方式是redis默认 持久化方式 Redis可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本.Redis创建快照之后,可以对快照进行备 ...

  4. Linux常用命令(学习笔记)

    命令编写以遇到的生产问题的前后为顺序进行记录 虚拟机的镜像是centos6.5版本,在这个版本下,我个人整理记录了一些在linux上常用的命令以及一些项目部署需要的jdk.tomcat.mysql等的 ...

  5. MySQL操作数据库

    2.操作数据库 操作数据库>操作数据库中的表>操作表中的数据 Mysql关键字不区分大小写 2.1操作数据库 2.1.1创建数据库  create database if not EXIS ...

  6. java 心跳机制

    心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...

  7. Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

    (一)DG故障转移后切换为备库的方法 在DG执行故障转移之后,主库与从库的关系就被破坏了.这个时候如果要恢复主从关系,可以使用下面的3种方法: 将失败的主库重新搭建为备库,该方法比较耗时: 使用数据库 ...

  8. Flutter中的绘图(Canvas&CustomPaint)API

    本文是Flutter中Canvas和CustomPaint API的使用实例. 首先看一下我们要实现的效果: 结合动图演示,列出最终目标如下: 在程序运行后,显示一个小球: 每次程序启动后,小球的样式 ...

  9. [草稿]基于 Virtuoso 环境比较便捷的项目文件及权限管理方案

    https://www.cnblogs.com/yeungchie/ 假设如下情况: 1 项目名称 Project_01 2 包含 4 名研发用户,user01 和 user02 为前端工程师,use ...

  10. 2020牛客暑假多校训练营 第二场 E Exclusive OR FWT

    LINK:Exclusive OR 没做出 原因前面几篇说过了. 根据线性基的知识容易推出 不超过\(w=log Mx\)个数字即可拼出最大值 其中Mx为值域. 那么考虑w+2个数字显然也为最大值.. ...