码迷,mamicode.com
首页 > 编程语言 > 详细

Python-yield 三元运算 Lambda表达式

时间:2017-04-07 21:50:23      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:pre   while   语句   blog   简洁   odi   代码   ret   log   

yield(保存函数的执行状态)

   一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。

  yield 的好处是显而易见的,把一个函数改写为一个 generator 就获得了迭代能力,比起用类的实例保存状态来计算下一个 next() 的值,不仅代码简洁,而且执行流程异常清晰。

#!usr/bin/env python
#coding:utf-8
def ReadLines():
    seek=0
    ‘‘‘ 
    起始位置
‘‘‘
    while True:
        with open(E:/temp.txt,r)as f:
            f.seek(seek)
            data=f.readline()
            if data:
                seek=f.tell()
                ‘‘‘
                读完的末位置 作为下次的首位置
                ‘‘‘
                yield data
            else:
                return 

for item in ReadLines():
    
    print item

三元运算判断(简化代码)

temp=None
if 1>3:
    temp=gt
else:
    temp=lt
    
restult=gt if 1>3 else lt
print restult

Lambda表达式做运算(简化代码)

def foo(x,y,z):
    return x*y+z
print foo(1,3,4)



temp=lambda x,y,z:x*y+z
print temp(1,3,4)

 

Python-yield 三元运算 Lambda表达式

标签:pre   while   语句   blog   简洁   odi   代码   ret   log   

原文地址:http://www.cnblogs.com/Eilleen/p/6679850.html

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