1. 函数名 -> 第一类对象 函数名就是变量名. 函数可以赋值 函数可以作为集合类的元素 函数可以作为参数传递 函数可以作为返回值返回 2. 闭包 语法: 内层函数对外层函数的局部变量的使用 def wrapper(): name = "" def inner(): return name return inner 如何查看一个函数是否是闭包 函数名.__closure__ 有值就是闭包. None就不是闭包 优点: 1. 保护变量不被侵害 (javascript) 2. 可以让一个变量常驻内存 3. 迭代器 在数据中包含了__iter__是一个可迭代对象. for循环内部 it = lst.__iter__() while 1: try: it.__next__() except StopIteration: break 特点: 1. 节省内存 2. 惰性机制 3. 只能向前, 不能反复 意义: 统一数据类型的遍历工作 官方查看xxx是迭代器, 可迭代对象 from collections import Iterable, Iterator isinstance(对象, Iterable) isinstance(对象, Iterator) 迭代器一定可迭代 -> for循环 可迭代的不一定是迭代器
相关文章: