Pythonの信頼できる無限ループ

Pythonブログで、無限ループの設計について議論行われましたが、これはより審美的に楽しいものです。whileTrueまたはwhile 1 <5 :-)このトピックは、無限ループのトピックとPythonでの実装に関する私の経験と議論です。 Pythonブログに投稿できないのでごめんなさい-ここに書いています。



私の意見では、このようなサイクルでの作業は2つの柱に基づいています。

キット1:それらは存在しません。 はい、無限ループは一種のチェシャ猫で、プログラマーに気付かれずに消えて笑顔を残すことができます。 そして、あなたのプログラムとその仕事の結果からも、誰も笑顔が残っていません(むしろ上司/顧客の不満な顔をしかめる)、あなたは注意する必要があります。 無限のサイクルはそれぞれ開始され、いつかは終了することを意味します。最も重要なことは、データプロバイダー、Ctrl + Cを押したユーザー、または到着したUFOではなく、都合のよいときに終了することです。 ループ出口点を設計します。 ほとんどの場合、これは反復の終わりになりますが、途中から抜け出す方法は可能です。 そして、時には、鼻から血が出る前に、いくつかのアクションを実行する必要がある場合があります。場合によっては、さらに1回または2回の繰り返しです。 手段:サイクルからの出口はしっかりとあなたの手に握られなければならず、サードパーティのライブラリに翻弄されてはなりません。



クジラ2:魔法でダウン。 「魔法」によって、私はあなたがその振る舞いを100%予測することができない非標準の「メゴクール」なギークの使用を理解しています。 私はすべてを一度に正しくするために数行を書くのが大好きです。 問題は、初期条件が変化したときに、このメガクールネスが常に安定して予測可能な動作をするかどうかです。 それらを徹底的に研究していない場合、より古典的アプローチをより確実かつ効率的に使用できますか? そして、彼らは10行を保存し、重大な瞬間にたくさんのがらくたと落ちてしまい、最終的にそれらを取り除くために、さらに50行のコードを追加したことがわかりました:)

既に理解しているように、「魔法」は相対的な概念です。 私がパイソン、私、そして種のデザインを勉強し始めたとき
  url = self._url +(http_params and(glue + '&'。join(['%s =%s'%(k、v)for k、v in http_params.items()])))または '') 
魔法のようでした。



これに基づいて、無限ループを作成するアプローチを開発しました。 補助変数が開始され、好きなように呼び出すことができます。通常、workingを呼び出します。その後、すべてが単純になります。

働く=真

作業中:

...

そして、working = Falseに変更する必要がある場合、サイクルは終わりまで進み、次のサイクルは開始しません。 ただし、アプローチは柔軟です-ループを終了するだけでなく、他のアクションを実行したり、中間を終了したり(機能しない場合:ブレーク)、さらに1つまたは2つのサイクルをスクロールすることもできます-すべてはタスクに必要なものです。

さらに、ループ自体でこの変数を変更する必要はありません。 OSシグナルでハンドラーをハングさせ、特定のシグナルでこのフラグをクリアできます。 したがって、サイクルから美しい出口を出すことができます。そのため、Ctrl + Cを押したときに、トレースバックが画面に表示されず、蓄積されたすべてのデータがタルタラに落ちます。 そのため、作業を論理的に進め、ファイルを保存し、すべての変更をデータベースに書き込み、ユーザーをペンで振ってうまく終了する機会があります。

このアプローチは、柔軟性と信頼性を確立しており、さまざまな悪魔で積極的に使用されています。

どのようなアプローチを使用していますか?

これは私の最初のhabratopikです-願いとコメントを歓迎します





All Articles