作家
登录

Python Yield Generator详解

作者: 来源: 2017-07-28 13:19:27 阅读 我要评论

in self.generator_dict.items(): 
  •  
  •             if cur >= t: 
  •  
  •                 self._do_resume_genetator(gene,cur) 
  •  
  •   
  •  
  •     def _do_resume_genetator(self,gene, cur ): 
  •  
  •         try: 
  •  
  •             self.on_generator_excute(gene, cur) 
  •  
  •         except StopIteration,e: 
  •  
  •             self.remove_generator(gene) 
  •  
  •         except Exception, e: 
  •  
  •             print 'unexcepet error', type(e) 
  •  
  •             self.remove_generator(gene) 
  •  
  •   
  •  
  •     def add_generator(self, gen, deadline): 
  •  
  •         self.generator_dict[gen] = deadline 
  •  
  •   
  •  
  •     def remove_generator(self, gene): 
  •  
  •         del self.generator_dict[gene] 
  •  
  •   
  •  
  •     def on_generator_excute(self, gen, cur_time = None): 
  •  
  •         t = gen.next() 
  •  
  •         cur_time = cur_time or time.time() 
  •  
  •         self.add_generator(gen, t + cur_time) 
  •  
  •   
  •  
  • g_yield_mgr = YieldManager() 
  •  
  •   
  •  
  • def yield_dec(func): 
  •  
  •     def _inner_func(*args, **kwargs): 
  •  
  •         gen = func(*args, **kwargs) 
  •  
  •         if type(gen) is types.GeneratorType: 
  •  
  •             g_yield_mgr.on_generator_excute(gen) 
  •  
  •   
  •  
  •         return gen 
  •  
  •     return

      推荐阅读

      化繁为简 海云捷迅为企业提供应用OpenStack新“姿势”

    在版本进级方面,OpenStack每半年就会宣布一个版本,这是它的立异过程,但企业客户更多求稳,不会过快的进行迭代进级。海云捷迅底层技巧是每两年一个版本,首版是基于OpenStack的E版本,二版本是H版,三版本是基于社>>>详细阅读


    本文标题:Python Yield Generator详解

    地址:http://www.17bianji.com/lsqh/36457.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)