名前付きループ構造を言語構造に含める理由はありますが、読みやすさを損なうことなく簡単にPythonで回避できます。 Iは、(とりわけ) 戻る破壊条件として使用されるブール関数ことで内部ループを置くことによって、この問題を解決するためのPython
>>> try:
for i in xrange(0,5):
for j in xrange(0,6):
if i*j > 6:
print "Breaking"
raise StopIteration
print i," ",j
except StopIteration:
print "Done"
0 0
0 1
0 2
0 3
0 4
0 5
1 0
1 1
1 2
1 3
1 4
1 5
2 0
2 1
2 2
2 3
Breaking
Done
>>>
で参照例の実装。
私はあなたがこれを試すべきだと思います。これは非常にpythonic、シンプルで読みやすいです。あなたが複数のループから抜け出すためにそれを使用することができます
import contextlib
@contextlib.contextmanager
def escapable():
class Escape(RuntimeError): pass
class Unblock(object):
def escape(self):
raise Escape()
try:
yield Unblock()
except Escape:
pass
:ここ
[第2の回答](http://stackoverflow.com/questions/653509/breaking-out-of-nested-loops)、hopefullそれはいくつかの助けy。しかし私が見ることから、そのようなシステムは存在しません。 –
"しかし、壊すためのラベル付けループはずっと簡単です"適切な機能よりも簡単ですか?どうして?これがどのように「よりシンプル」なのかの証拠をいくつか提出できますか? –
私は便利な例はありませんが、その1つの場所でのみ使用される関数を作成しなければならない状況になります。たぶん「シンプル」は間違った言葉でした。私が意味していたことは、その1つの場所で使用するためだけに新しい関数を定義する必要はないということでした。 – inspectorG4dget