<legend id='alU1K'><style id='alU1K'><dir id='alU1K'><q id='alU1K'></q></dir></style></legend>
    • <bdo id='alU1K'></bdo><ul id='alU1K'></ul>

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

        <tfoot id='alU1K'></tfoot>

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

        Python 的迭代器协议到底是什么?

        What exactly is Python#39;s iterator protocol?(Python 的迭代器协议到底是什么?)

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

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

          <tbody id='b2SXt'></tbody>
        1. <legend id='b2SXt'><style id='b2SXt'><dir id='b2SXt'><q id='b2SXt'></q></dir></style></legend>
            <bdo id='b2SXt'></bdo><ul id='b2SXt'></ul>

                <tfoot id='b2SXt'></tfoot>
                • 本文介绍了Python 的迭代器协议到底是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  有客观的定义吗?它是作为python源代码的片段实现的吗?如果是这样,有人可以生成确切的代码行吗?是否所有语言都有自己的for"语句迭代器协议?

                  Is there an objective definition? Is it implemented as a fragment of python's source code? If so, could someone produce the exact code lines? Have all languages with, say, a 'for' statement iterator protocols of their own?

                  推荐答案

                  位于 这里在文档中:

                  需要为容器对象定义一个方法来提供迭代支持:

                  One method needs to be defined for container objects to provide iteration support:

                  container.__iter__()

                  返回一个迭代器对象.该对象需要支持下面描述的迭代器协议.如果容器支持不同类型的迭代,则可以提供额外的方法来专门为这些迭代类型请求迭代器.(支持多种迭代形式的对象的一个示例是支持广度优先和深度优先遍历的树结构.)此方法对应于 Python 对象类型结构的 tp_iter 槽在 Python/C API 中.

                  Return an iterator object. The object is required to support the iterator protocol described below. If a container supports different types of iteration, additional methods can be provided to specifically request iterators for those iteration types. (An example of an object supporting multiple forms of iteration would be a tree structure which supports both breadth-first and depth-first traversal.) This method corresponds to the tp_iter slot of the type structure for Python objects in the Python/C API.

                  迭代器对象本身需要支持以下两种方法,它们共同构成了迭代器协议:

                  The iterator objects themselves are required to support the following two methods, which together form the iterator protocol:

                  iterator.__iter__()

                  返回迭代器对象本身.这是允许容器和迭代器与 for 和 in 语句一起使用的必要条件.此方法对应于 Python/C API 中 Python 对象的类型结构的 tp_iter 槽.

                  Return the iterator object itself. This is required to allow both containers and iterators to be used with the for and in statements. This method corresponds to the tp_iter slot of the type structure for Python objects in the Python/C API.

                  iterator.__next__()

                  从容器中返回下一个项目.如果没有其他项目,则引发 StopIteration 异常.此方法对应于 Python/C API 中 Python 对象的类型结构的 tp_iternext 槽.

                  Return the next item from the container. If there are no further items, raise the StopIteration exception. This method corresponds to the tp_iternext slot of the type structure for Python objects in the Python/C API.

                  这篇关于Python 的迭代器协议到底是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Running .jl file from R or Python(从 R 或 Python 运行 .jl 文件)
                  Running Julia .jl file in python(在 python 中运行 Julia .jl 文件)
                  Using PIP in a Azure WebApp(在 Azure WebApp 中使用 PIP)
                  How to run python3.7 based flask web api on azure(如何在 azure 上运行基于 python3.7 的烧瓶 web api)
                  Azure Python Web App Internal Server Error(Azure Python Web 应用程序内部服务器错误)
                  Run python dlib library on azure app service(在 azure app 服务上运行 python dlib 库)
                    <bdo id='gyLhl'></bdo><ul id='gyLhl'></ul>
                    <i id='gyLhl'><tr id='gyLhl'><dt id='gyLhl'><q id='gyLhl'><span id='gyLhl'><b id='gyLhl'><form id='gyLhl'><ins id='gyLhl'></ins><ul id='gyLhl'></ul><sub id='gyLhl'></sub></form><legend id='gyLhl'></legend><bdo id='gyLhl'><pre id='gyLhl'><center id='gyLhl'></center></pre></bdo></b><th id='gyLhl'></th></span></q></dt></tr></i><div id='gyLhl'><tfoot id='gyLhl'></tfoot><dl id='gyLhl'><fieldset id='gyLhl'></fieldset></dl></div>

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

                              <tbody id='gyLhl'></tbody>
                          • <legend id='gyLhl'><style id='gyLhl'><dir id='gyLhl'><q id='gyLhl'></q></dir></style></legend><tfoot id='gyLhl'></tfoot>