首页 > 代码库 > aaaa
aaaa
回顾yield
yield
1.用在函数里,把函数的执行结果做成一个生成器,注意:是执行结果
2.与return功能类似,都可以返回值;return只能返回一次值,然后结束函数;yield可以返回多个值
3.yield会暂停函数,保存函数状态
举例
def func(count): print(‘start‘) while True: yield count count +=1 func(10)g=func(10)print(g) #<generator object func at 0x000002341F69FDB0> 注意注意!!把函数的执行结果做成生成器generator,执行结果next(g)#start next会触发生成器的执行print(next(g)) #11 g.__iter__() #只有iter属性的是迭代对象g.__next__()#iter和next都有的是迭代器,触发迭代器执行的是next,生成器本质上是迭代器
协程函数讲解
本质上是 yield的表达式的应用
yield的表达式应用:
两个阶段:
1.初始化
next(g)
g.send(None)
2.传值
g.send(‘apple‘)
#一个什么都不做的装饰器模板
def init(func): def wrapper(*args,**kwargs): pass return wrapper
#自动初始化的装饰器def init(func): def warpper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return warpper@initdef eater(name): print(‘%s start eat‘ %name) food_list=[] while True: food=yield food_list food_list.append(food) print(‘%s start eat %s‘ %(name,food)) g=eater(‘alex‘)print(g)#初始化#next(g)#传值print(g.send(‘apple‘))print(g.send(‘banana‘))
面向过程
核心是过程
介绍
核心是过程,过程即解决问题的步骤。基于面向过程的程序,就像是在设计一条工业流水线,是机械式的思维
优点:
缺点:
应用场景:
举例
利用python实现以下命令的作用
grep -rl ‘error‘ /dir/ 过滤出dir目录下所有带有‘error’的文件名字
先分析实现的过程(面向过程)
1.找出dir目录下所有的文件的绝对路径
2.打开文件
3. 每打开一个文件,循环过滤每一行
4.过滤‘error’关键字
5.打印带有‘error’行所属于的文件的绝对路径
aaaa
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。