Christopher King wrote:
If the user ever sees an AssertionError, your code is buggy.
Well you saw that I caught the AssertionError, so the user
wouldn't technically see it. For the other stuff, I didn't know
the etiquette for assertion
It's not etiquette, it is the actual way assert works.
If you have code that looks like this:
assert x > 0
print x + 1
and the user runs your code using "python -O", the code is converted to:
print x + 1
and the assert is just *gone*.
It is as simple as that. Any time you use an assert, you should imagine
that it will just *disappear* some times.
When are assertions useful? If you have ever written code like this:
if x > 0:
print x + 1
else:
# This can never happen!
raise RuntimeError('unexpected internal error')
that's a good case for using an assert. Because you are sure that the
else can never happen, it won't matter if the assert goes away. But
because you can't be absolutely 100% sure, it's better to code
defensively with a check that your program logic is correct.
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor