可能性の重複:
The Python yield keyword explainedyieldがpython 2.7では何をするのですか?
さて、私はおそらくひどく質問を言葉で表現しましたが、これは私が持っている状況です。
私は理解しようとしているのPython 2.7でのコード行があります、このコード行で
yield (padding_zeros + number_string).encode("ascii")
をpadding_zeros
が「0年代の可変数の文字列であり、number_string
が数値であります0から10000の間の任意の数値にすることができる文字列の形で入力します。
私は確かに.encode("ascii")
がyieldの出力をasciiに変換すると確信しています。
私が完全に海で行っているのは、yield (padding_zeros + number_string)
のことです。
私はジェネレータを開始することは知っていますが、オンラインで検索して構文を読み出すのに多くの時間を費やしましたが、実際にはジェネレータの内容は実際にはになりません。これは私の最初のpython(私の究極の目的は、このコードをC#に変換することです)を見ていることを助けることはありません。
だから、基本的に、誰かが私にこのコード行が何をしているのか説明してもらえますか?それはちょうど2つの文字列を一緒に追加するか、もう少し複雑なことをしますか?さらにコンテキストについて
が、これはコードのその行はに表示されることをブロックである: -
for current_length in range(4, max_length + 1):
for i in range(0, pow(10, current_length)):
number_string = str(i)
padding_zeros = "0" * (current_length - len(number_string))
yield (padding_zeros + number_string).encode("ascii")
(何かの最大長さを示す数値max_length
は、それが聞こえる正確に何です)
事前にすべての回答をお寄せいただきありがとうございます(たとえ、私にそのような騒がしい奴らではないと言っても)。
EDIT:ありがとうございます。彼らはすべての非常に有用だった最高の答えとしてick 1。コメントのお寄せいただきありがとうございます - そのうちのいくつかが指摘しているように、What does the "yield" keyword do in Python?は、私が特定の状況への答えを見つけられなかったとしても、歩留まり、発電機、反復の非常に良い一般的なガイドです:)
はこのPythonの2またはPythonの3か? –
こんにちはジョージ、あなたの質問は私が感じる非常によくここに答えている:http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained – MattH
この回答を見る:http://stackoverflow.com/questions/231767/the-python-yield-keyword-described/231855#231855 –