博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day11 ,12 闭包 迭代器 生成器
阅读量:6695 次
发布时间:2019-06-25

本文共 1050 字,大约阅读时间需要 3 分钟。

1.闭包

函数名第一类对象

       1函数名其实就是变量名

    2可以像变量一样互相赋值.

       3 可以作为函数的参数,进行传递

    4 可以作为返回值返回

       5可以作为集合的元素进行存储

  内部函数对外部函数中的变量的调用
  def outrt():
       a=10
       def innerr():
           a
           return
  好处:
      保护变量
      常住内存
  2.迭代器
     1. Iterable:  可迭代的.里面有 __iter__()
    2. Iterator:  迭代器. 里面有__iter__() 还有 __next__()
  特点:
    1,节省内存
    2,惰性机制(只有执行__next__()才会取值)
    3,只能向前取值,不能反复
  dir() #查看数据可执行操作的方法
  isinstance() #判断xxx对象是否是xxx类型
  __name__() #查看函数的名字
  __doc__() #查看函数的文档注释
  lst=[1,2,3]
  it=lst.__iter__()
  while 1:
      try:
          it.__next__()
      except StopIteration:
          break
 3.生成器
     生成器的本质就是迭代器
     生成器由生成器函数来创建或者通过生成器表达式来创建
 4.生成器函数
     生成器函数:在函数中return换成yield.这个函数是生成器函数
     def func():
         yield
     gen=func()  #函数并不会执行,而是创建一个生成器对象
     取值:
         gen.__next__()  #下一个
         gen.send()    #可以给上一个yield传值,第一次执行不能用send()
     特性:
         1.节省内存
         2.惰性机制
         3.只能向前
 5.各种推导式
         1.列表推导式: [结果 for循环 if条件]
         2.字典推导式: { key: value for循环 if条件}
         3.集合推导式: {key for循环 if条件}
 6. 生成器表达式(笔试题)
     (结果 for循环 if条件)
  # 计算两个数的和
  def add(a, b):
      return a + b
  def test():  # 生成器函数
      for t in range(4):
        yield t
  g = test()
  for n in [2, 10]:
      g = (add((n, i) for i in g))
  print(list(g))

     惰性机制
     记录在内存中的一段代码.

转载于:https://www.cnblogs.com/litieshuai/p/9670473.html

你可能感兴趣的文章
四大组件之Service_绑定服务
查看>>
swift中使用Objective C代码
查看>>
MS15-106 JScript ArrayBuffer.slice 任意地址读漏洞分析
查看>>
写一个复制 GitHub 仓库目录结构的cli
查看>>
Docker了解
查看>>
我的另类秋招 | 掘金技术征文
查看>>
【刷算法】把数组排成最小的数
查看>>
flutter-dart 组件构造函数介绍
查看>>
iOS开发,轻松获取根控制器当前控制器的正确方式
查看>>
Akka系列(九):Akka分布式之Akka Remote
查看>>
JavaScript 工作原理之十四-解析,语法抽象树及最小化解析时间的 5 条小技巧...
查看>>
算法(四):图解狄克斯特拉算法
查看>>
如何针对性替换数组里的某几个对象
查看>>
阿里智能工作软件机器人——码栈应用教程,让一切变得自动化
查看>>
Angular service 详解
查看>>
百度研发面经
查看>>
深度解析 Go 语言中「切片」的三种特殊状态
查看>>
Linux中apt与apt-get命令的区别与解释(转)
查看>>
iOS 中多音频处理
查看>>
PHP常用180函数总结
查看>>