python高级中的单例、异常、模块

一、单例模式

单例模式
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。

创建单例保证只有一个对象
python高级中的单例、异常、模块_第1张图片

二、异常。

什么是异常

异常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常。

捕捉异常

捕获异常是指发生异常时,最相应处理,避免程序崩溃
try:
可能引起异常的代码
except:
对异常的处理代码
结构是

try:
可能引起异常的代码
except:
对异常的处理代码 

捕获异常 try...except...


try:
      print("test") 
      open("123.txt","r")
except TOError:
      pass 

可能产生异常的代码要放在try里
pass是错误时的处理方法

捕获所有异常

有时候我们已经捕获了异常但是还会报错因为我们捕获的类型不一样这个时候我们可以用到能捕获所有异常的代码 Exception

try:
      open("a.txt","r")
except Exception as result
      print("捕获到了异常")
      print(“捕获的异常为”,result)

else

咱们应该对else并不陌生,在if中,它的作用是当条件不满足时执行的实行;同样在try…except…中也是如此,即如果没有捕获到异常,那么就执行else中的事情

try:
    num = 100
    print(num)
else:
    print("没有异常真高兴")  

finally

在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等

python高级中的单例、异常、模块_第2张图片

抛出自定义异常

你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类

python高级中的单例、异常、模块_第3张图片

异常处理中抛出异常

抛出异常相当于是说:“停止运行这个函数中的代码,将程序执行转到 except 语句 ”。

class Test(object):
   def __init__(self, switch):
       self.switch = switch #开关
    def calc(self, a, b):
        try:
            return a/b
        except Exception as result:
            if self.switch:
                print("捕获开启,已经捕获到了异常,信息如下:")
                print(result)
            else:
                #重新抛出这个异常,此时就不会被这个异常处理给捕获到,从而触发默认的异常处理
                raise


a = Test(True)
a.calc(11,0)

print("----------------------华丽的分割线----------------")

a.switch = False
a.calc(11,0)

三、模块

什么在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。
说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块是模块

import

在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。
形如:

import module1,mudule2...

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

from 模块名 import 函数名1,函数名2....

from … import *

把一个模块的所有内容全都导入到当前的命名空间也是可行的。

as

为模块更换名字 import 模块名 as 别名 简化代码编写

模块的制作

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。
比如有这样一个文件test.py,在test.py中定义了函数add

test.py

def add(a,b):
return a+b
调用自己定义的模块
import test
result = test.add(11,22)
print(result)

你可能感兴趣的:(python高级中的单例、异常、模块)