Python 3 assert statements
The syntax is a bit different from standard Python functions, as there are no
parens ()
here.
assert <expression1>[, <expression2>]
The basics are
- Raise an
AssertionError
ifexpression1
is falsy- Pass
expression2
toAssertionError
if present (AssertionError(expression2)
)
- Pass
I am testing to see if this is a good way to assert expectations during normal program execution.
try:
assert shouldProcess
assert len(address) > 0, "Address is required"
assert type(zip) is num, "Zip code is not a number"
assert valid_users.get(name) is not None, "User does not exist"
except AssertionError as e:
logging.error(e)
Note that assertion statements will not run when Python optimisation
flag is enabled. I.e. python -O
or PYTHONOPTIMIZE=1
, so it might be
safer to go about this in a different way for my example use-case.
If you have any comments or feedback, please send me an e-mail. (stig at stigok dotcom).
Did you find any typos, incorrect information, or have something to add? Then please propose a change to this post.