本番プログラムでassertは使うな【python】
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の場合にはエラーが出ますよというやつと考えてもらえればいい。詳しくは以下の記事を見ると良いと思う。
本番プログラムで使ってはいけない理由
このassert文は定数__debug__
がTrueの場合のみにエラーが発生される。しかし、python実行時に-O
引数を使用するとこのassert文は実行されずエラーは発生しない。なので、何も知らずに間違って-O
引数をつけてしまう可能性がある。また、その仕様によりバグの原因にもなりかねない。
最後に
ちなみに自分はエラーシステム自分で作っちゃう派。
個人的な質問等はこちらまで。
https://forms.gle/V6NRhoTooFw15hJdA
また、自分が参加しているRobocup soccer シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!
詳しくはこちら