闭包迭代器

Posted v-h3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭包迭代器相关的知识,希望对你有一定的参考价值。

1.函数名
函数名就是变量名(可以进行赋值),函数名存储的是函数的地址
需要括号才可以执行
技术分享图片
 
2.闭包:内层函数对外层函数(非全局)变量的引用
作用:1.保护一个变量,让他不受改变
2.让一个变量常驻内存
使?__closure__来检测函数是否是闭包. 使?函数名.__closure__返回cell就是
闭包. 返回None就不是闭包
 
技术分享图片
3.Iterable (可迭代的)
Iterator(迭代器)
d7ir() 查看变量能够执行的方法(内置函数)
dir(str)) # 查看str能够执行的操作. 内部的方法
 
list = [1,2,3,4,5,6]
it = list._iter_()
while 1:
try:
aa = it._next_()
print(aa)
except StopIteration:
break
 
如何判断一个数据是否是可迭代对象
1. dir() -> __iter__ 可迭代的
dir() -> __next__ 迭代器
lst = ["秦始皇", "汉武帝", "孝文帝", "隋炀帝", "李世民"]
print("__iter__" in dir(lst)) # True 可迭代的
print("__next__" in dir(lst)) # False 不是迭代器
 
from collections import Iterable(可迭代的), Iterator(迭代器)
print(isinstance(lst, Iterable)) # True
print(isinstance(lst, Iterator)) # False
 
print(isinstance({1,2,3}, Iterable)) # True, 可以使用for循环
迭代器特点:1.节省内存
2.惰性机制(不给_next_不给值)
3.只能往前,不可以重复

以上是关于闭包迭代器的主要内容,如果未能解决你的问题,请参考以下文章

闭包迭代器

迭代器,生成器, 闭包

Rust编程语言入门之函数式语言特性:-迭代器和闭包

python装饰器迭代器生成器闭包等等

python 闭包和迭代器

python之函数闭包可迭代对象和迭代器