python3基础---闭包、迭代器详解

2017-09-12  本文已影响0人  HopCoder

迭代器

  1. 可以迭代的对象
    可以直接用for循环进行迭代的对象
    一类是集合数据类型,如list、tuple、dict、set、str等
    一类是generator,包括生成器和带yield的generator function
  2. 判断是否可以迭代
from collections import Iterable
isinstance([], Iterable)

list不是迭代对象,但是可以迭代
可以使用next()函数的都是迭代对象
????
把迭代对象转换成迭代对象

a = [2,3,45,5]
b = iter(a) #转换成迭代对象
isinstance(b, Iterable)
true

闭包

1、函数引用
2、什么是闭包
在函数体里面定义了一个函数并且这个函数用到了外面的函数的变量,那么这个函数就是闭包

def test(num):
    def test_in()
        return num * 3
    #这个return test_in就是闭包
        return test_in #函数引用

3、理解

def test(a,b):
    def test_in(x):
        print(a*x + b)
    return test_in

line1 = test(1,1)
line1(0) # 结果是1
line2 = test(10,4)
line2(0) # 结果是4

问题:
line1(0) 此时值是多少呢
答案:结果是1

上一篇 下一篇

猜你喜欢

热点阅读