zoukankan      html  css  js  c++  java
  • Python

    生成器

    迭代器:python中内置的一种节省空间的工具

    生成器的本质就是一个迭代工具

    迭代器和生成器的区别: 迭代器是python自带的,生成器是程序员自己写的

    在函数中将return改写成yield就是一个生成器

    retunrn 与 yield的区别

    return 和 yield 都是返回

    return 可以写多个,但是只执行一次,yield可以写多个,还可以返回多次

    一个_next_()对应一个 yield
    

    生成器可以使用for循环获取值

    yield form --将可迭代对象元素逐个返回
    

    在函数的内部yield 能将for循环和while循环进行临时暂停

    推导式

    print([i for i in range(50) if i % 2 == 1])
    [变量(加工后的变量)for 循环 加工方式]
    

    生成器表达式

     (变量(加工后的变量) for循环)
     (变量(加工后的变量) for循环 加工条件)
    

    列表

    [变量(加工后的变量) for 循环]
    
    [变量(加工后的变量) for 循环  加工条件]
    

    字典推导式

     print({i:i+1 for i in range(10)})
     print({i:i+1 for i in range(10) if i % 2 == 0})
    
        {键:值 for循环 加工条件}
    

    集合推导式

     print({i for i in range(10)})
     print({i for i in range(10) if i % 2 == 0})
    
     {变量(加工后的变量) for循环 加工条件}
    

    匿名函数

    匿名函数 lambda
             lambda 形参:返回值   -  lambda x:x
             形参可以不写,返回值必须写 返回值只能是一个数据类型
         *****    匿名函数的名字叫做 lambda
    
     print((lambda x:x)(2)) # 同一行定义 同一行调用
    
     lambda 关键字 -- 定义函数
     x,y  形参
    :x+y  返回值 -- 只能返回一个数据类型
    

    闭包

     啥是闭包:嵌套函数内,使用非全局变量就是闭包
     闭包干啥:保证数据的安全性,装饰器使用   外层函数返回内层函数的特性!
    
     def func():
         a = 1
         def foo():
             print(a)
         return foo
     func()()
    
     闭包的另一种形式
     def func(a):
         def foo():
             print(a)
         return foo
     ret = func(2)
     print(ret.__closure__)
    
  • 相关阅读:
    Unity 之 中文乱码
    fork调用的底层实现
    Linux错误代码含义
    VMware 获取该虚拟机的所有权失败
    Qt ------ QAction
    C++ ------ const迭代器 和 const_iterator的区别
    IAR ------- 在线调试技巧
    STM32 ------ HardFault_Hander 中断函数
    从一张表中复制数据到另一张表中
    分布式任务调度平台xxl-job
  • 原文地址:https://www.cnblogs.com/zgboy/p/11604190.html
Copyright © 2011-2022 走看看