三大器 (装饰器、迭代器、生成器)
装饰器
import time
# 计算函数执行时间的装饰器
def timmer(f):
def inner(*args, **kwargs):
start = time.time()
ret = f(*args, **kwargs)
end = time.time()
print(end - start)
return ret
return inner
# 打印hello的函数
@timmer
def func(a, b=2):
print("hello", a, b)
time.sleep(0.1)
return "bye"
ret = func(8)
print(ret)
迭代器
含有__iter__方法的都是可迭代的----可迭代协议
可迭代的.__iter__ 就变成一个迭代器,并含有__next__方法
迭代器.__next__就可以一个一个的进行取值
生成器
含有yield关键字的函数都是生成器函数,
yield和return在函数中不能共存
生成器函数的执行就是一个生成器
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步