sys.exit(main())

 この記事は、ラズパイとPython初心者である私が、初めてカラーLEDテープでエルチカを楽しんだ頃に書いています。
 親記事(参考プログラム)はこちらです。

エルチカなのに、Pythonプログラムの記述に意味が分からないものがある | パイ・パイソン手記 (pi-python.com)

 「プッシュボタンを押した際に、エルチカをスタートさせて、もう一度押したときに止める」
 というプログラムを作る際に参考にしたサイトがありまして、

Pythonでデバイスを制御しよう 第2回:プッシュボタンを扱う(2) 誤動作の原因となるチャタリングを防止する | Device Plus – デバプラ

 この参考サイトで、記述されていたのが、

 sys.exit(main())

 参考サイトのプログラムには、1行1行にとても詳しく補足説明が書かれているし、ボタンのチャッタリングのことも分かりやすく説明していたのですが、それとは関係ない、初歩的な部分なためか、この sys.exit(main()) のことが全く説明されてなかったのです。

 で、意味が分からないまま、そのプログラムを流用するのがモヤモヤするので、Google先生に尋ねるのですが、

 sys.exit(0)と記述することによって、正常終了したことになります。

 という基本は理解できましたが、その後、私が軽くネットで検索したときは、sys.exit(main())という、カッコの中に実行関数を入れるということをしている記事に辿りつけませんでした。

 というか、実行命令の引数に、変数のように関数を使うことが可能ということに衝撃を受けました。

 物は試しで、print(main())と記述したら、main()関数が実行されて、最後のreturnの数値がちゃんと表示されたのです。
 MSXのBASICで止まっている私にとっては、なんともビックリ。

 で、私も独学素人野郎なのに、プロっぽくこの記述を使って、メイン部分の関数main()を起動することにしました。
 ま~前回の記事でも書いていますが、if __name__ == “__main__”: と同じで、

 単純なエルチカプログラムには全く必要のない記述ですので、私にとっては完全に自己満足な記述ですがね^^

コメント

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