読者です 読者をやめる 読者になる 読者になる

もしpythonにyieldを埋め込む関数があると

以前、コルーチン化することで関数のテストのしやすさが上がるんじゃないかと考えたことがあります。そのときはpythonでyieldを使っていたのですが、テストのためだけにyieldを入れることはまずありえないです。替りにコメント中のyieldを実行する関数YIELD作れば、テストコードだけにyieldを使って、本番コードでは使わないということが可能になります。どういうことかと言うと、pythonで書けば

def total(numbers):
  tot = 0
  for number in numbers:
    tot += number
  return tot

という関数の途中の値を得るのに、YIELDを使えば

def total(numbers):
  tot = 0
  for number in numbers:
    tot += number
    #yield tot, number
  return tot
for i in YIELD(total, range(10)):
  print i

のように書けて、実験のたびにyieldを足したり引いたり書き換える必要がなくなるということです。