码迷,mamicode.com
首页 > 其他好文 > 详细

aaaa

时间:2017-08-01 14:45:03      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:[]   机械   war   python实现   event   返回值   路径   obj   arp   

回顾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
 
View Code
技术分享
#自动初始化的装饰器
def init(func):
 def warpper(*args,**kwargs):
 g=func(*args,**kwargs)
 next(g)
 return g
 return warpper
@init
def 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

标签:[]   机械   war   python实现   event   返回值   路径   obj   arp   

原文地址:http://www.cnblogs.com/lazyball/p/7267998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!