<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 每天學點Python之Iterator 我們經常需要遍歷一個對象中的元素,在Python中這種功能是通過迭代器來實現的。 ### 原理 每一個迭代器可以通過反復調用迭代器的__next__()方法來返回創建該迭代器的對象中的后繼值。當沒有可用數據時,產生一個StopInteration異常。此時,迭代器對象被耗盡,之后再調用 __next__()方法只會再次產生StopInteration異常。需要訪問的對象要求包含一個__iter__()方法,用于返回迭代器對象,如果對象就實現了迭代器方法,就可以返回對象本身。 ### 使用 我們可以通過調用iter()方法來返回對象的迭代器: ~~~ >>> i = iter("hello") >>> i.__next__() 'h' >>> next(i) 'e' >>> next(i) 'l' >>> next(i) 'l' >>> next(i) 'o' >>> next(i) Traceback (most recent call last): File "<input>", line 1, in <module> StopIteration ~~~ 對于Python中常見的一些數據類型,如元組、列表、字典等都已經自己實現了迭代器功能,這使得它們能在for循環中正常工作: ~~~ >>> for i in (2,3,1): ... print(i) ... 2 3 1 ~~~ ### 自定義 如果我們要求自定義訪問對象中的數據,那該如何做呢,我們需要實現__iter()__和__next()__方法,下面我們給出自己的對象,實現一個簡易的計時器功能: ~~~ class CountDown: def __init__(self, start): self.count = start def __iter__(self): return self def __next__(self): if self.count <= 0: raise StopIteration r = self.count self.count -= 1 return r if __name__ == "__main__": for time in CountDown(3): print(time) 輸出:3 2 1 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看