[解決済み] Pythonの "assert "はどのように使うのですか?
質問
ソースコードを読んでいると、いくつかの箇所で
assert
.
具体的にはどのような意味ですか?その使い方は?
どのように解決するのですか?
その
assert
文は、ほとんどすべてのプログラミング言語に存在します。主な用途は2つ。
-
他の操作に失敗してからではなく、原因がはっきりしているプログラムの早い段階で問題を発見することができます。例えば、Pythonの型エラーは、何層ものコードを経て、実際に
Exception
を早期に発見しなければなりません。 -
これは、コードを読む他の開発者のためのドキュメントとして機能します。
assert
で、その条件がこれから成立すると自信を持って言える。
そうすると...
assert condition
...その条件をテストして、その条件が偽であれば直ちにエラーを発生させるようにプログラムに指示しているのです。
Pythonでいうと、だいたいこんな感じです。
if not condition:
raise AssertionError()
Pythonのシェルで試してみてください。
>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
アサーションにはオプションのメッセージを含めることができ、インタプリタ実行時に無効化することができます。
アサーションに失敗した場合にメッセージを表示する。
assert False, "Oh no! This assertion failed!"
行う
ない
を括弧で囲んで呼び出します。
assert
関数のようなものです。文なのです。もし、あなたが
assert(condition, message)
を実行することになります。
assert
を使って
(condition, message)
タプルを最初のパラメータとする。
無効化については、実行時に
python
最適化モードでは
__debug__
は
False
の場合、assert文は無視されます。ただ
-O
フラグを使用します。
python -O script.py
参照 こちら は、関連するドキュメントを参照してください。
関連
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
python string splicing.join()とsplitting.split()の説明
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み] データ型が理解できない
-
[解決済み] Pythonで悪い/不正な引数の組み合わせに対してどの例外を発生させるべきですか?
-
[解決済み] アサートの使用に関するベストプラクティス?
-
[解決済み】ユニットテストとは何ですか?[クローズド]