1. 函数名第一类对象
函数名其实就是变量名
1. 可以像变量一样互相赋值.
2. 可以作为函数的参数,进行传递
3. 可以作为返回值返回
4. 可以作为集合的元素进行存储
def a():
print(1)
def b():
print(2)
list = [a,b]
for i in list:
i()
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() 查看数据可以执行的方法
isinstance() 判断xxx对象是否是xxx类型
for循环的内部用的是迭代器
lst = [1, 2, 3]
it = lst.__iter__().__next__()
while 1:
try:
it.__next__()
except StopIteration:
break