闭包、迭代器

一、函数名的应用以及第一类对象

  函数名可以向变量一样使用

  函数名可以进行赋值

  函数名可以充当容器中的元素类型

  函数名可以充当参数‘

  函数名可以作为函数名的返回值

二、

  闭包

  

 def func():
     name = "alex"   # 常驻内存  防止其他程序改变这个变量
     def inner():
         print(name) # 在内层函数中调用了外层函数的变量,叫闭包, 可以让一个局部变量常驻内存
     return inner

 ret = func()
 ret() # 执行的是inner()

 

  内部函数访问外部函数的局部变量

  特点;

  安全

  常驻内存,提高效率

三、迭代器

  可迭代对象:内部含有_ _ iter_ _

  迭代器:内部含有_ _iter_ _,_ _next_ _

  str , list,  dict,  tuple, set 都是可迭代对象,但不是迭代器

  文件的句柄 ,range(),是迭代器。

  迭代器的特点:

    节省内存

    惰性机制

    只能向前,不能回退。

四、

  lst = ['秦始皇', '汉武帝', '齐桓公', '晋文公']

  it = lst._ _iter_ _() 

  while 1:

     try:

     name = _ _next_ _()

     except StopIteration:

       break

 

     

转载于:https://www.cnblogs.com/wf123/p/9325823.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值