HomeSearch

Python assert, O Option

Use assert to ensure a condition is true at runtime. Specify the O option to remove asserts.

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.

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.Built-ins
Home
Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.