迭代器,生成器,装饰器简述

装饰器

它是指对函数执行过程,做一些扩展,甚至可以更改本身函数的执行,它就是在不改变源码的情况下,给它添加新的功能

python提供的内置装饰器有?

@classmethod修饰类函数,可以由对象和类调用,在类函数中,有一个隐形参数,如果使用类函数执行,隐形参数指这个类。如果使用对象.类函数执行,隐形函数指对象的类型。它只想让类来调用

@staticmethod修饰静态函数,静态函数没有任何隐形参数,可以由对象和类调用

@property在函数前面加这个装饰器,那么这个函数可以当成属性类用

迭代器

访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容,不能随机访问集合中的某个值,只能从头到尾依次访 问,访问到一半不能往后退,便于循环比较大的数据集合,节省内存

迭代器有两种类型:

1.集合数据类型:列表,字典,元组,集合,字符串

2.generator:包括生成器和带有yield的生成函数

生成器

一个函数在调用时返回一个迭代器,那这个函数就叫做生成器,如果函数中包含yield语法,那这个函数就会变成生成器,它是一遍循环一般计算的机制。

生成器的特点:

1.节约内存

2.迭代到下一次的调用时,所使用的参数都是第一次所保留下来的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的。

猜你喜欢

转载自blog.csdn.net/miner_zhu/article/details/81094931