1. ホーム
  2. python

[解決済み] Pythonの "assert "はどのように使うのですか?

2022-03-21 17:49:58

質問

ソースコードを読んでいると、いくつかの箇所で assert .

具体的にはどのような意味ですか?その使い方は?

どのように解決するのですか?

その assert 文は、ほとんどすべてのプログラミング言語に存在します。主な用途は2つ。

  1. 他の操作に失敗してからではなく、原因がはっきりしているプログラムの早い段階で問題を発見することができます。例えば、Pythonの型エラーは、何層ものコードを経て、実際に Exception を早期に発見しなければなりません。

  2. これは、コードを読む他の開発者のためのドキュメントとして機能します。 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

参照 こちら は、関連するドキュメントを参照してください。