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. echarts 实战 : 怎么写出和自动生成的一样的 tooltip ?

    找到答案很麻烦,但答案本身很简单. 假设 需要给 echarts 的数据是 option. option.tooltip.formatter = (params) => { return `&l ...

  2. CSS3伪元素 ::first-letter ::first-line ::selection

    首先,关于伪元素的语法: 有的时候单冒号也能用,但最好写双冒号. 伪类:匹配的是元素(不同状态或结构的). 伪元素:匹配的是元素中的一部分内容(首字符,首行文本). ::first-letter 匹配 ...

  3. IDEA 2020.1.2安装破解激活 idea 2020.1.3下载 安装 一键破解

    IDEA 2020.1.2 idea 2020.1.3下载 安装 破解 本项目只做个人学习研究之用,不得用于商业用途!若资金允许,请点击链接购买正版,谢谢合作!学生凭学生证可免费申请正版授权!创业公司 ...

  4. ”initialization failure:0x0000000C“错误,何解?

    今天开机后打开软件,报出这样的警告”initialization failure:0x0000000C“. 我问了度娘,看了很多回答,答案参差不齐.其中,有个回答还是很不错的(刚好我的是win10系统 ...

  5. [jvm] -- 类加载器及双亲委派模板篇

    类加载器 JVM 中内置了三个重要的 ClassLoader BootstrapClassLoader(启动类加载器):最顶层的加载类,由C++实现,负责加载 %JAVA_HOME%/lib目录下的j ...

  6. Redis Desktop Manager安装

    Windows安装: 1.下载安装包 官网下载地址:https://redisdesktop.com/pricing 官网下载需要付费使用 再此附上一个免费的破解版本,绿色安全可用 链接:https: ...

  7. Git日常操作指南

    git status git add . git commit -m "注释" git stash # 每次 push 前 git pull --rebase // 如果有冲突,解 ...

  8. 没想到 Hash 冲突还能这么玩,你的服务中招了吗?

    背景 其实这个问题我之前也看到过,刚好在前几天,洪教授在某个群里分享的一个<一些有意思的攻击手段.pdf>,我觉得这个话题还是有不少人不清楚的,今天我就准备来“实战”一把,还请各位看官轻拍 ...

  9. 1_Java语言概述

    学于尚硅谷开源课程 宋红康老师主讲 感恩 尚硅谷官网:http://www.atguigu.com 尚硅谷b站:https://space.bilibili.com/302417610?from=se ...

  10. MacOS入门

    原文池建强的blog 对普通用户来说,用好Mac主要有三点: 1.理解OSX的基本结构和特点 2.掌握多手势和快捷键(少量即可,多多益善) 3.用好工具 一.理解OSX的基本结构和特点 Mac OS ...