迭代器
- 可以迭代的对象
可以直接用for循环进行迭代的对象
一类是集合数据类型,如list、tuple、dict、set、str等
一类是generator,包括生成器和带yield的generator function - 判断是否可以迭代
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