讨论区 分享作业区 主题详情
ZengChen
老师参与 【课时26 生成器1—next用法】作业:得到没有/有使用yield语句,生成斐波那契数列(兔子数量)的时间


我是新手,现在仍难以接受装饰器语法糖的逻辑,所以下面的代码没有使用装饰器。

结果是:

6.91400003433

0.0790004615784

使用yield语句得到的迭代器速度快很多


当然这份代码是复杂化了,只是为了练习闭包。

我想问下老师,在老师你后面的深度学习课程里,使用装饰器的频率高不高啊?


import time def time_cost(loop_times):     def decorator(func):         def wrapper(*arg):             time_list = []             for i in range(loop_times):                 global loop_times1                 loop_times1 = i                 start_time = time.time()                 func(*arg)                 end_time = time.time()                 cost_time = end_time - start_time                 time_list.append(cost_time)             sum_time = sum(time_list)             return sum_time         return wrapper     return decorator def calculate1(adult, child):     for i in range(loop_times1):         adult, child = adult + child, adult     return adult + child def calculate2(adult, child):     while True:         adult, child = adult + child, adult         yield adult + child          calculate2_generator = calculate2(0, 1) if __name__ == '__main__':     print time_cost(10000)(calculate1)(0, 1)     print time_cost(50000)(calculate2_generator.next)()

所有回复(1)

真心不高。。。

不过做web后端的同学应该会经常用到。后端框架里挺多的。

回复

最近活动:
创建时间:
浏览次数:454
关注人数:0