<i id='qrgs4'><tr id='qrgs4'><dt id='qrgs4'><q id='qrgs4'><span id='qrgs4'><b id='qrgs4'><form id='qrgs4'><ins id='qrgs4'></ins><ul id='qrgs4'></ul><sub id='qrgs4'></sub></form><legend id='qrgs4'></legend><bdo id='qrgs4'><pre id='qrgs4'><center id='qrgs4'></center></pre></bdo></b><th id='qrgs4'></th></span></q></dt></tr></i><div id='qrgs4'><tfoot id='qrgs4'></tfoot><dl id='qrgs4'><fieldset id='qrgs4'></fieldset></dl></div>
      • <bdo id='qrgs4'></bdo><ul id='qrgs4'></ul>

      <small id='qrgs4'></small><noframes id='qrgs4'>

    1. <legend id='qrgs4'><style id='qrgs4'><dir id='qrgs4'><q id='qrgs4'></q></dir></style></legend>
      1. <tfoot id='qrgs4'></tfoot>

        如何立即运行生成器函数的初始化代码,而不是

        时间:2023-08-06

        1. <tfoot id='jZegl'></tfoot>
          <legend id='jZegl'><style id='jZegl'><dir id='jZegl'><q id='jZegl'></q></dir></style></legend>
              <tbody id='jZegl'></tbody>
            • <bdo id='jZegl'></bdo><ul id='jZegl'></ul>
              • <small id='jZegl'></small><noframes id='jZegl'>

                <i id='jZegl'><tr id='jZegl'><dt id='jZegl'><q id='jZegl'><span id='jZegl'><b id='jZegl'><form id='jZegl'><ins id='jZegl'></ins><ul id='jZegl'></ul><sub id='jZegl'></sub></form><legend id='jZegl'></legend><bdo id='jZegl'><pre id='jZegl'><center id='jZegl'></center></pre></bdo></b><th id='jZegl'></th></span></q></dt></tr></i><div id='jZegl'><tfoot id='jZegl'></tfoot><dl id='jZegl'><fieldset id='jZegl'></fieldset></dl></div>

                  本文介绍了如何立即运行生成器函数的初始化代码,而不是在第一次调用时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有一个类似这样的生成器函数:

                  I have a generator function that goes something like this:

                  def mygenerator():
                      next_value = compute_first_value() # Costly operation
                      while next_value != terminating_value:
                          yield next_value
                          next_value = compute_next_value()
                  

                  我希望在调用函数后立即运行初始化步骤(在 while 循环之前),而不是仅在第一次使用生成器时运行.有什么好的方法可以做到这一点?

                  I would like the initialization step (before the while loop) to run as soon as the function is called, rather than only when the generator is first used. What is a good way to do this?

                  我想这样做是因为生成器将在单独的线程(或进程,或任何多处理使用)中运行,并且我不会在短时间内使用 return,而且初始化有点昂贵,所以我希望它在我准备使用这些值时进行初始化.

                  I want to do this because the generator will be running in a separate thread (or process, or whatever multiprocessing uses) and I won't be using the return for a short while, and the initialization is somewhat costly, so I would like it to do the initialization while I'm getting ready to use the values.

                  推荐答案

                  class mygenerator(object):
                      def __init__(self):
                          next_value = compute_first_value()
                      def __iter__(self):
                          return self
                      def next(self):
                          if next_value == terminating_value:
                              raise StopIteration()
                          return next_value
                  

                  这篇关于如何立即运行生成器函数的初始化代码,而不是在第一次调用时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:启动一个单独的进程 下一篇:让我的 NumPy 数组跨进程共享

                  相关文章

                  最新文章

                    <bdo id='AvwWl'></bdo><ul id='AvwWl'></ul>
                • <small id='AvwWl'></small><noframes id='AvwWl'>

                  <tfoot id='AvwWl'></tfoot>
                • <i id='AvwWl'><tr id='AvwWl'><dt id='AvwWl'><q id='AvwWl'><span id='AvwWl'><b id='AvwWl'><form id='AvwWl'><ins id='AvwWl'></ins><ul id='AvwWl'></ul><sub id='AvwWl'></sub></form><legend id='AvwWl'></legend><bdo id='AvwWl'><pre id='AvwWl'><center id='AvwWl'></center></pre></bdo></b><th id='AvwWl'></th></span></q></dt></tr></i><div id='AvwWl'><tfoot id='AvwWl'></tfoot><dl id='AvwWl'><fieldset id='AvwWl'></fieldset></dl></div>

                      <legend id='AvwWl'><style id='AvwWl'><dir id='AvwWl'><q id='AvwWl'></q></dir></style></legend>