HomeSearch

Python assert, O Option

This Python example uses the assert statement to ensure a condition is true at runtime. The O option removes assert statements.
Assert. This statement causes an AssertionError when an expression is false. We pass an expression (or value) as the first argument. Python stops and signals the assert call.Error
With this statement, we can ensure a program's state is correct. And by providing the "O" option on the command line, we can optimize out all assert calls.

Tip: Assert() only has an effect when __debug__ is true. We can disable __debug__ with a command-line parameter.

An assert example. This example program has an assert statement. It causes an AssertionError unless the two values add up to 110.

So: If the two values add up to 110, an assertion occurs. Otherwise nothing happens.

Command lines: The first command line uses the "O" option. This means the assertion is optimized out of the program.

And: The second command line uses no special options, so the assert is left in the program and triggered.

Python program that uses assert value = 10 value2 = 100 # Assert if this expression is not true. assert(value + value2 != 110) print("DONE") Command line: C:\pypy3-2.4.0-win32\pypy.exe -O C:\programs\file.py Output DONE Command line: C:\pypy3-2.4.0-win32\pypy.exe C:\programs\file.py Output Traceback (most recent call last): File "C:\programs\file.py", line 8, in <module> assert(value + value2 != 110) AssertionError
Options. When running PyPy or Python, try providing the "-h" option. This will show you help. Then use "-O" to enable optimization (which removes asserts).
Options: -O : skip assert statements
Some notes. Python is not known for its extreme performance. If your code is critical and cannot bear the burden of assert statements, a faster language might be a good idea.
Research. Python is a wonderful language and it has good documentation. The Python site indicates that assert statements are removed when optimization is enabled.

Quote: The current code generator emits no code for an assert statement when optimization is requested at compile-time.

Simple statements: python.org
A review. Assert statements can be used instead of print statements for debugging. With assert() we can then completely remove all this logic. This helps if we know the program is correct.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Home
Dot Net Perls