初学python,小记三

2021-04-10 20:30

阅读:526

标签:__name__   image   __iter__   yield   调用   __next__   冻结   finally   序列   

1、面向对象的应用(异常处理、文件备份)

-装饰器:1、用于扩展原来函数功能的一种函数  2、返回函数的函数  3、在不用更改原函数的代码前提下给函数增加新的功能

带参数的装饰器:

技术图片

  -@wraps():使用装饰器后,__name__和__doc__会发生改变,所以使用@wraps装饰器会起到还原的效果

 

- 迭代器:

a、迭代意味着重复多次,就像循环那样(list,tuple)

b、实现了方法__iter__的对象是可迭代的,而实现了方法__next__的对象是迭代器

c、调用方法__next__时(或next()),迭代器返回其下一个值

d、如果迭代器没有可供返回的值,触发Stoplteration异常

从迭代器创建序列

- 通过对可迭代对象调用内置函数iter,可获得一个迭代器

技术图片

 

----------

 技术图片

 

 

-生成器: 1、每次使用yyield生成一个值后,函数都将被冻结,即在此停止执行   2、被重新唤醒后,函数将从停止的地方开始继续执行

a、生成器是一种使用普通函数语法定义的迭代器

b、包含yield语句的函数都被称为生成器

c、不使用return返回一个值,而是可以生成多个值,每次一个

技术图片

 

2、异常

概述:1、每个异常都是某个类的实例   2、发生了异常如果不捕获,则程序将终止执行  3、有一些内置的异常类

技术图片

 

 如何捕获异常

- 使用try...except 捕获所有异常

技术图片

 

 - 使用try...except...finally处理必不可少的逻辑

技术图片

 

 -自定义异常

-通过继承自Exception类来自定义异常

技术图片

 

 - 抛出异常和异常的传递

如果在异常产生的地方不捕获,那么它会一层一层的往上传递

技术图片

 

初学python,小记三

标签:__name__   image   __iter__   yield   调用   __next__   冻结   finally   序列   

原文地址:https://www.cnblogs.com/shaonianlang/p/13276910.html


评论


亲,登录后才可以留言!