if __name__ == “__main__”:

 私が独学でPythonを習い始めて、初めのころに出会った「なんじゃこれ」な構文です。
 ラズパイと一緒に購入した、中華のパーツキットの片言日本語PDFファイルのプログラムに記述されていて、最初のころは、「この記述は、関数mainを実行するための儀式」と間違って覚えたんですよね。本来の意味を知るまでに数週間は経っていました。

Pythonプログラムはモジュール、ライブラリを使うのが基本

 私は、中学生のころにMSXでBASICや、Z80のアセンブラを独学で覚えましたが、それ以降20年はプログラムとは無縁の生活でした。なので、関数の定義とか、GOTOがないとか、いろいろと新鮮な感じでしたが、一番今時だなと感じたのが

 各種センサーの制御は、外部ライブラリを使って制御する

 というのが、便利だな~と思う反面、私が趣味として求めている、「プログラムを自分で組み立てる」という面では、まったくやりがいがないんだな~というのを感じました。
 別のカテゴリーで32文字のLCDの事を書く予定ですが、これのI2C通信部分に関して、ほとんどの入門書やガイド本は、「外部ライブラリ」を使用する流れで、LCDの制御ICのデーターシートの見方とか、実際のI2Cデバイスへの命令の送り方とかを説明しているのが少ないんですよね。

 と、話が脱線しているので、本筋に戻りますが、今時のプログラムの特徴と思いますが、Pythonでは、公式・標準のライブラリ、外部のライブラリ等を利用しながらプログラムを組むようです。
 先人の方が公開している外部ライブラリが豊富にあるため、それを利用することによって、私みたいな素人でも簡単な記述、操作で、カメラによる画像認識ができます。

 このライブラリというのは、プログラムの集合体でして、私がテープLEDを光らせるためにダウンロードしたファイルは、フォルダーが数十個、個別のPythonプログラムは数百個はありそうな代物でした。ま~中身のほとんどはテープLEDとは関係ない他のICモジュールの制御プログラムですが。

 ネットで軽く調べた感じでは、一つのPythonプログラムは、モジュール。一つのフォルダー分は、パッケージ。フォルダーの集合体が、ライブラリと呼ばれるようです。

結局のところ、エルチカには必要ない!

if __name__ == “__main__”:
  実際のプログラム部分

 これを記載することによって、プログラム 〇〇.pyを、他のプログラムで使う時に、
 
 import 〇〇 でモジュールを読み出す宣言・準備をしたときに、実際のプログラム部分を実行しないようにするための記述です。
 これを記述していないと、宣言・準備をした時点で実行されてしまいます。

 詳細は、グーグル先生に聞いて下さいw
 私は、Pythonの基本的な定型文なんだ、と無理やり納得するようにしていますが、_ この全角のアンダーバーが妙に気になります。何故に全角なのかなと。

 そして、単純なエルチカのプログラムに、この記述は不要かと個人的には思います。
 だって、他のプログラムから、無限ループのエルチカのプログラムを読む事なんてありえませんから!

 32文字のLCDディスプレイに、温度センサーの数値を表示させ、設定の温度になったら、ブザーと「LEDを点滅させる」というプログラムを組むときに、「LEDを点滅させる」の部分を他のプログラムで用意するときに、やっと使える記述かと思います。

コメント

タイトルとURLをコピーしました