kumitatepazuru's blog

中学生のメモブログ。みんなの役に立ちたい。

本番プログラムでassertは使うな【python】

f:id:kumitatepazuru:20201018192025p:plain
めっちゃgimpで遊んでみた
1000PV記念。

環境

OS: ubuntu 20.04LTS
CPU: Intel core i7
GPU: GTX 1050Ti
python: 3.6.4
tensorflow: 2.3.0
keras: tensorflow内蔵

どーでもいい情報入っているかもしれんが定型文だからしょうがない()

そもそもassertって?

簡単に言うと、assert a == bというふうに書いてa == bがFalseになったらエラーを吐くという仕組みのもの。if文のelseの場合にはエラーが出ますよというやつと考えてもらえればいい。詳しくは以下の記事を見ると良いと思う。

qiita.com

本番プログラムで使ってはいけない理由

このassert文は定数__debug__がTrueの場合のみにエラーが発生される。しかし、python実行時に-O引数を使用するとこのassert文は実行されずエラーは発生しない。なので、何も知らずに間違って-O引数をつけてしまう可能性がある。また、その仕様によりバグの原因にもなりかねない。

最後に

ちなみに自分はエラーシステム自分で作っちゃう派。


個人的な質問等はこちらまで。

https://forms.gle/V6NRhoTooFw15hJdA

また、自分が参加しているRobocup soccer シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!

詳しくはこちら

kumitatepazuru.github.io