Python_装饰器和生成器

2018-02-12 10:49:31来源:segmentfault作者:aLogy人点击

分享
迭代器

迭代是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只往前不会往后退。


可迭代对象

以直接作用域for循环的数据类型:

集合数据类型:list, tuple, dict, set, strgenerator,包括生成器和yield的generator function
判断是否可以迭代

使用方法isinstance()判断一个对象是否具有Iterable对象


from collections import Iterableisinstance('abc', Iterable) # true
迭代器

可以被next()函数调用并不断返回下一个值的对象称之为迭代器: Iterator


生成器, tuple


from collections import Iteratorisinstance((x for x in range(10)), Iterator) # True
isinstance([], Iterator) # False 列表不是迭代对象

iter()函数
生成器都是Iterator对象, 但是list, dict, str虽然是Iterable,却不是Iterator


可以把其他类型转成生成器, 使用iter()函数


闭包

函数是引用


闭包:


def test(number):
def test_in(number_in):
print(number_in)
return number + number_in
return test_intest(10)(20)
装饰器

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台