• 生成器


    只要函数内有yield,调用的时候就和函数本身没有关系了,得到了是一个生成器对象,玩法就是next(x),next(x),next(x)

    (若函数体包含yield关键字,再调用函数,并不会执行函数体代码,得到的返回值即生成器对象)

    1.yield表达式应用

    • yield可以用于返回值,但不同于return,函数一旦遇到return就结束了,而yield可以保存函数的运行状态挂起函数,用来返回多次值。
    • 针对表达式形貌的yield,生成器对象必须事先被初始化一次,让函数挂起在food=yield位置,等待调用g.send()方法为函数体传值,g.send(None)等同于next(g)

    2.三元表达式

    res = 条件成立时返回的值 if  条件  else 条件不成立时返回的值
    如:
    x=1
    y=10
    
    res = x if x >10 else y
    

    3.列表生成式

    快速生成列表的表达式

    l=['han_age','wang_age','liu','zhao']  快速筛选出列表后结尾为_age
    l_new=[name for name in l if name.endswith('age')]
    

    4.生成器表达式

    创建一个生成器对象有两种方式,一种是调用带yield关键字的函数,另一种就是生成器表达式,与列表生成式的语法相同,只需要将[]换成()。即:(expoession for item in iterable if condtion)

    [x*x for x in range(3)]    [0,1,4]
    g=(x*x for x in range(3))   此时等到的g为生成式了
    
  • 相关阅读:
    ONVIFclient搜索设备获取rtsp解决开发笔记(精华文章)
    openldap---ldapsearch使用
    简单工厂模式
    编译和运行时,库在何处
    Linux 双网卡绑定技术
    统计某个字符个数,小数运算,小数加减乘除
    2cifang.com_2次方学习
    c/c++ extern “C”
    环境变量0831
    股票技巧
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14354386.html
Copyright © 2020-2023  润新知