python小笔记-装置器、偏函数、异常处理(断言)

xiaoxiao2021-03-01  44

装置器:

概念:就是一个闭包,把一个函数当做参数返回一个替代版的函数

本质:就是一个返回函数的函数

eg: def function1():

print(“sunck good”)

def outer(m):

print(“***”)

m()

function1 = outer(functiion1)     返回*** sunck good

 

通用装置器:

def outer(func):

def inner(*args,**kwargs)

#添加修饰的功能

func(*args,**kwargs)

return inner

 

偏函数

eg: print(int(“1010”,base = 2))

eg: import functools

int3 = functools.partial(int,base = 2)

print(int3(“1010”))     返回10

 

 

异常处理:

try...except...else

作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

 

格式:

try:

语句t

except 错误码 as  e:

语句1

except 错误码 as  e:

语句2

...

except 错误码 as  e:

语句n

else:

语句n+1  #else可有可无

逻辑:

当程序执行到try...except...else语句时

1、若当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应的“语句”

2、若当try“语句t”执行出现错误,没哟匹配的异常,错误将会被提交到上一层的try语句,或者到程序的最上层

3、若当try“语句t”执行没有出现错误,执行else下的“语句n+1”

eg: try:

print(3/0)

except NameError as e:

print(“没有该变量”)

except ZeroDivisionError as e:

print(“除数为0”)     返回 除数为0

eg: try:

print(num)

except ZeroDivisionError as e:

print(“除数为0”)

except NameError as e:

print(“没有该变量”)     返回 没有该变量

 

使用except带有多种异常

eg: try:

pass

except (ZeroDivisionError ,NameError)as e:

print(“出现异常”)

 

一般使用except而不使用任何的错误类型

eg: try:

print(num)

except :

print(“程序出现异常”)     返回 程序出现异常

特殊:

错误其实是class(类)所有的错误都继承自BaseException,所以在捕获时,它捕获了该类型的错误,还把类一网打尽跨越多层调用,任然能捕获到子类中的错误try..except...finally

格式:try:

语句t

except 错误码 as  e:

语句1

except 错误码 as  e:

语句2

...

except 错误码 as  e:

语句n

finally:

语句n+1  

作用:语句t无论是否有错误都将执行最后的语句n+1

 

断言:

assert()

eg: def func(num,div):

assert(div != 0),”div不能为0 ”

return num / div

print(10,0)    返回 报错AssertionError:div不能为0

print(10,0)    返回 5.0

转载请注明原文地址: https://www.6miu.com/read-4200365.html

最新回复(0)