「永久に実行中」の状況は、より大きなステート マシンの一部である場合があります。多くの組み込みデバイス (run-forever ループを使用) は、実際には永久に実行されません。多くの場合、いくつかの動作モードがあり、それらのモード間で順序付けられます。
ヒート ポンプ コントローラーを構築したとき、少しの間実行される電源投入時セルフ テスト (POST) モードがありました。次に、すべてのゾーンとサーモスタットなどを把握するまで実行される予備的な環境収集モードがありました.
一部のエンジニアは、次に来るのは「run-forever」ループだと主張しました。それほど単純ではありませんでした。実際には、いくつかの動作モードがひっくり返ったり、フロップしたりしていました。暖房、霜取り、冷房、アイドリング、その他のものがありました。
私の好みは、「永久」ループを実際には 1 つの動作モードとして扱うことです。将来のある時点で他の動作モードが存在する可能性があります。
someMode= True
while someMode:
try:
... do stuff ...
except SomeException, e:
log.exception( e )
# will keep running
except OtherException, e:
log.info( "stopping now" )
someMode= False
someMode
状況によっては、これまでに に設定されたものはありませんFalse
。しかし、私は、将来のバージョンでモード変更があるふりをするのが好きです.