<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[success] # 生成器 yield ~~~ 1.函數中出現了yield 語句就會將其轉換成一個生成器,生成器只有在相應的時候才會執行 ~~~ >[danger] ##### 仿寫一個range 函數 ~~~ def frange(start, stop, increment=1): x = start while x < stop: yield x x += increment for i in frange(1,10): print(i) ~~~ >[danger] ##### 機制說明案例 ~~~ 1.返現直接打印 并不會執行函數,只會打印內存地址 2.當使用迭代器的時候就會重新打印出數據,執行代碼,for 同理 ~~~ ~~~ def countdown(n): print('startin to count from', n) while n>0: yield n n -=1 print('Done!') c = countdown(3) print(c) print(next(c)) 打印結果: <generator object countdown at 0x000002038E5D6E60> startin to count from 3 3 ~~~ >[danger] ##### 類似遞歸機制,獲取每一個根對象和根對象內容 ~~~ 1.對于簡單的迭代器,yield from iterable本質上等于for item in iterable: yield item 2.簡單的理解會把能迭代的對象繼續迭代 3.>>> def g(x): ... yield from range(x, 0, -1) ... yield from range(x) ... >>> list(g(5)) [5, 4, 3, 2, 1, 0, 1, 2, 3, 4] 上面的代碼直接用 yield 的話只會打印出 range(x, 0, -1) 不會講內容迭代 ~~~ ~~~ class Node: def __init__(self, value): self._value = value self._children = [] def __repr__(self): return 'Node({!r})'.format(self._value) def add_children(self, node): self._children.append(node) def __iter__(self): return iter(self._children) def depth_first(self): yield self for c in self: yield from c.depth_first() if __name__ == "__main__": root = Node(0) child1 = Node(1) child2 = Node(2) root.add_children(child1) root.add_children(child2) child1.add_children(Node(3)) for ch in root.depth_first(): print(ch) 打印結果: Node(0) Node(1) Node(3) Node(2) ~~~
                  <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>

                              哎呀哎呀视频在线观看