函数名的使用,闭包,迭代器

函数名的使用:

1,函数名可以当做值赋值给变量

2,函数名可以当参数去传递,传递函数名的时候,如说+()就是传递这个函数的返回值

3,函数名可以当做返回值被返回,返回值不能加括号,接力要一层一层传递,中间断了就传不到

def foo():
    print(2)
def func(msg):
    print(1)
    return msg()
print(func(fool))

4,函数名可以当做一个元素存放在容器中

5,查看函数内存地址print(函数名)

def func():
    
    pass
def func2(msg):
    print(msg)

func(func())

for i in lst:    遍历

  i()        调用

闭包

使用函数__closure__获取的内容不是None就是闭包,嵌套函数并且内部函数使用外部变量(非全局变量)就是闭包

好处:保护这个变量不被外界修改

         生命周期延长

    节省开辟空间和销毁空间的时间差

应用场景: import requests

迭代器

遵守迭代协议:

  可以被for循环的就是可迭代对象__iter__可迭代

  只有__iter__方法的就是可迭代对象

新建一个迭代器,具有__iter__和__next__方法

迭代器不能回退,是惰性的,一次性

lst=[1,2,3,4,5]
l=lst.__next__()      创建一个迭代器
print(l.__next__())   执行   1
...2
...3
...4
...5

for 循环机制

lst=[1,2,3,4,5]
l=lst.__iter__()
while True:
    try:     异常捕获
        print(l.__next__())
        except stopIteration
            break

查看是否是可迭代对象

from collections import Iterable,Iterator
lst=[1,2,3,4]
li=lst.__iter__()
print(isinstance([1,2,3,4],Tterator))

 

转载于:https://www.cnblogs.com/weize111/p/10251232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值