django 中的延迟加载技术,python中的lazy技术
时间:2022-03-21 06:20
---恢复内容开始---
说起lazy_object,首先想到的是django orm中的query_set、fn.Stream这两个类。
query_set只在需要数据库中的数据的时候才 产生db hits。Stream对象只有在用到index时才会去一次次next。
例子: f = Stream() fib = f << [0, 1] << iters.map(add, f, iters.drop(1, f))1行生成了斐波那契数列。
说明:
f是个lazy的对象,f首先放入了0和1,然后放入了迭代器iters.map。等f[2]的时候。就会调用1次next(iters.map(add, f, iters.drop(1, f))),在map的迭代器中,next(f)和next(drop(1,f))被放到add两端。
很高端大气上档次有木有!
这里有个django的lazy的实现代码,
对象的
---恢复内容结束---
django 中的延迟加载技术,python中的lazy技术,gxlsystem