呼び出されるたびにジェネレーターに次の値を返すようにさせることができないため、この 1 つのコードに行き詰まっています。最初の値のままです。見てみましょう:
numpy インポートから *
def ArrayCoords(x,y,RowCount=0,ColumnCount=0): # I am trying to get it to print
while RowCount<x: # a new coordinate of a matrix
while ColumnCount<y: # left to right up to down each
yield (RowCount,ColumnCount) # time it's called.
ColumnCount+=1
RowCount+=1
ColumnCount=0
ここに私が得るものがあります:
>>> next(ArrayCoords(20,20))
... (0, 0)
>>> next(ArrayCoords(20,20))
... (0, 0)
しかし、それは最初のもので立ち往生しています!私はこれを期待していました:
>>> next(ArrayCoords(20,20))
... (0, 0)
>>> next(ArrayCoords(20,20))
... (0, 1)
>>> next(ArrayCoords(20,20))
... (0, 2)
コードを手伝ってくれて、なぜそうなのか説明してもらえますか? 前もって感謝します!