yield-from

    5熱度

    1回答

    是否可以嵌套yield from陳述? 簡單形式是顯而易見的: def try_yield1(): x = range(3) yield from x 主要生產: 0 1 2 但如果我有嵌套發電機? def try_yield_nested(): x = [range(3) for _ in range(4)] yield from ((yiel

    2熱度

    2回答

    所以,這裏是一個Python表達式: a = yield from f() 是什麼意思?它可以在哪裏使用? f應該是什麼樣的對象?表達式評估後a的值是多少? 這裏有幾個問題上的計算器了Python的yield和yield from,但我沒有找到一個答案。 我明白了yield x,y = yield和y = yield x的含義。即使yield from f()或多或少都可以理解。但a = yi

    0熱度

    3回答

    我想實現我自己的itertools.compress版本,問題是我偶然發現了返回類型。我的意思是這兩個函數都返回一個迭代器,但我認爲第二個函數不被視爲生成器函數,因爲裏面沒有yield語句。所以我的問題是,這兩個實現是否相同? def compress (seq, selectors): from operator import itemgetter fst = itemget

    25熱度

    2回答

    我有用於包含讀和寫的asyncio連接流的Connection對象: class Connection(object): def __init__(self, stream_in, stream_out): object.__init__(self) self.__in = stream_in self.__out = stream_out

    2熱度

    1回答

    我有一個發電機,其中有return value聲明。 如果我使用它,我會按預期從它那裏得到Stopiteration:value。 但是,當我使用yield fromvalue丟失。 In [1]: def test(): ...: return 1 ...: yield 2 ...: In [2]: t = test() In [3]: t Out[3

    1熱度

    1回答

    我有這樣一個清單: list=['2,130.00','2,140.00','2,150.00','2,160.00'] 我想用這樣的函數 def f(iterable): yield from iterable ,並在同一應用 float(item.replace(',','')) for item in iterable 時間以便 f(list) 回報 [2130.0

    3熱度

    1回答

    PEP 380提到可以在Python中優化yield from expr語法。 PEP 380 - Optimizations 使用專門的語法開闢了可能性爲優化時,還有很長的發電機鏈。例如,當遞歸遍歷樹結構時,會出現這樣的鏈。通過__next__()調用併產生值的開銷會導致在最壞的情況下O(n ** 2)應該成爲O(n)操作。 一種可能的策略是向生成器對象添加一個插槽以容納委託給的生成器。當對發生

    5熱度

    1回答

    我有一個函數返回一個生成器。目前,它使用yield from: function foo() { $generator = getGenerator(); // some other stuff (no yields!) yield from $generator; } 如果我更換yield from用一個簡單的return,並在這種情況下改變什麼?也許在執行