どういうassert
意味ですか? どのように使われますか?
ベストアンサー1
このassert
ステートメントは、ほぼすべてのプログラミング言語に存在します。主な用途は 2 つあります。
これは、他の操作が失敗した後でなく、原因が明らかなプログラムの早い段階で問題を検出するのに役立ちます。たとえば、Python の型エラーは、
Exception
早い段階で捕捉されないと、実際に if を発生させる前に、複数のコード レイヤーを通過する可能性があります。これは、コードを読む他の開発者に対するドキュメントとして機能し、開発者は を見て
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
、アサート ステートメントは無視されます。-O
フラグを渡すだけです。
python -O script.py
見るここ関連文書については、