1. 函数名第一类对象
函数名其实就是变量名
1. 可以像变量一样互相赋值
2. 可以作为函数的参数, 进行传递
3. 可以作为返回值返回
4. 可以作为集合的元素进行存储
__name__ 查看函数的名字
__doc__ 查看函数的文档注释
2. 闭包(函数的嵌套, 返回函数名): 内部函数对外部函数中的变量的调用
作用:
1. 保护变量
2. 常驻内存
基本写法:
def outer():
a = 10
def inner():
print(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__()
while 1:
try:
it.__next__()
except StopIteration:
break