有参装饰器/迭代器/生成器

def auth(参数1,参数2,参数3):
def deco(func):
def wrapper(*args,**kwargs):
res=func(*args,**kwargs)
return res
return wrapper
return deco

from functools import wraps
def outer(func):
@wraps(func)
def wrapper(*args,**kwargs):
res=func(*args,**kwargs)
return res
return wrapper
@outer#index=outer(index)#index等于wrappe的内存地址
def index(x,y):
"""
解释文档
:param x:
:param y:
:return:
"""
print("this is index------>",x,y)
index(1,2)#wrapper调用
print(index.__name__)
print(index.__doc__)

1、什么是迭代器
迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复
都是基于上一次的结果而继续的,单纯的重复并不是迭代

2、为何要有迭代器
迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型
有:列表、字符串、元组、字典、集合、打开文件

l=['egon','liu','alex']
i=0
while i < len(l):
print(l[i])
i+=1

上述迭代取值的方式只适用于有索引的数据类型:列表、字符串、元组
为了解决基于索引迭代器取值的局限性
python必须提供一种能够不依赖于索引的取值方式,这就是迭代器


3、如何用迭代器

# 如何得到自定义的迭代器:
# 在函数内一旦存在yield关键字,调用函数并不会执行函数体代码
# 会返回一个生成器对象,生成器即自定义的迭代器
原文地址:https://www.cnblogs.com/mayrain/p/12562358.html