水曜日, 9月 19, 2018

Python: try ブロックでコードが終わるとき

ゆえあってPythonでシステムを書いている今日この頃なんですが、面白い発見をしたのでここで書いておきます。

まあ、もとはといえばtry-except-finallyなど書いていて、データベース接続をどこで閉じるかっていう議論があったわけです。finallyブロックでどうか、なんていうことで議論は収束しました。

しかしながらここで「え」「これfinallyこないんじゃない」「無理だよ」「unreachable」っていう指摘が出てきたわけなんです。tryブロックで値を返していたわけなんですね。finallyへは来ないんじゃ…

しばらくして「あれ?」って声が上がりました。これです。

この結果は…(走らせてみてください)。

tryブロックで終了するコードだと起きる現象ですね。

実はこれ、Javaでも同様です(走らせてみてください)。

I2S プロトコル

I²S(Inter-IC Sound)は、マイコンやオーディオ機器間で音声データをやり取りするために設計された、シリアル通信プロトコルです。I²CやSPIと名前は似ていますが、I²Sは音声専用のプロトコルです。 I²Sは、以下の3つの主要な信号線を使って通信します。 BCLK (...