python_day11 闭包和迭代器

1. 函数名第一类对象
函数名其实就是变量名
1. 可以像变量一样互相赋值
2. 可以作为函数的参数, 进行传递
3. 可以作为返回值返回
4. 可以作为集合的元素进行存储

__name__ 查看函数的名字
__doc__ 查看函数的文档注释

2. 闭包(函数的嵌套, 返回函数名): 内部函数对外部函数中的变量的调用
作用:
1. 保护变量
2. 常驻内存
基本写法
def outer():
a = 10
def inner():
return a
return inner

3. 迭代器(用)
1. Iterable: 可迭代的, 里面有__iter()__
2. Iterator: 迭代器, 里面有__iter()__, 还有 __next__()

特点:
1. 节省内存
2. 惰性机制(只有执行__next__()才会取值)
3. 只能向前, 不能反复

dir() 查看数据可以执行的方法
还可以引入collections 中的Iterable和Iterator
isinstance() 判断xxx对象是否是xxx类型

for循环的内部用的是迭代器
lst = [1, 2, 3]
it = lst.__iter__().__next__()
while 1:
try:
it.__next__()
except StopIteration:
break

猜你喜欢

转载自www.cnblogs.com/lauuu/p/9670381.html