闭包/迭代器

闭包

  写法:在外层函数声明一个变量
  在内层函数使用或者返回这个变量
  如果不用这个变量就不是闭包
    1.可以保护我的变量
    2.可以让一个变量常驻内层(但不是全局变量)
      这个执行时间不确定 所以你必须给我留着
    3.查看是否有闭包
      ret.__closure__
    4.闭包应用:
      保护变量 常驻内层
      ====>网络爬虫 应对带宽不稳定情况


迭代器
   可迭代的:str/list/tuple/dict/set/open()/range()
    # dir() 可以查看某数据类型中可以执行的方法
  在字符串里面发现了__iter__,没有__next__
  在int里面没有__iter__,没有__next__
  在list里面也有__iter__

  # 所有包含了__iter__的东西都可以使用for循环
  都可以进行迭代

 1 # coding:utf-8
 2 # 迭代器 for循环的本质
 3 lst = [1, 2, 3, 4, 5, 6]
 4 it = lst.__iter__()
 5 
 6 while 1:
 7 try:
 8 print(it.__next__())
 9 except StopIteration:
10 print("结束了")
11 break
View Code

猜你喜欢

转载自www.cnblogs.com/gaofeng-d/p/10587371.html