Home
Python
assert, O Option
This page was last reviewed on May 25, 2023.
Dot Net Perls
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.
Detail 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.
value = 10 value2 = 100 # Assert if this expression is not true. assert(value + value2 != 110) print("DONE")
C:\pypy3-2.4.0-win32\pypy.exe -O C:\programs\file.py
DONE
C:\pypy3-2.4.0-win32\pypy.exe C:\programs\file.py
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).
-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.
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.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
No updates found for this page.
Home
Changes
© 2007-2024 Sam Allen.