Anton <anton.schattenf...@gmail.com>: > I am not sure how and when you use assert, but something that stops me > from using assert is that in many cases I would use them to > 1) Check type of an incoming argument/returned value > 2) Check value of an incoming argument/returned value
You use asserts to boldly state that the asserted condition never fails. If it should fail anyway, the world could come tumbling down and you would hang your head in shame. Asserts help the reader of the code understand why some possibilities are not considered by the code. They are not considered because the writer of the code asserts they are not really possible. Asserts help not only lay the blame to the writer of the code but might also make it easier to troubleshoot failures. I use asserts sparingly, just like comments (which asserts are). I use them to communicate nonobvious truths to the future maintainer of the code. For example, instead of # never reached I will write assert False Or I might indicate the exhaustion of possibilities: if status == OK: ... elif status == ERROR: ... else: assert status == WARNING ... Marko -- https://mail.python.org/mailman/listinfo/python-list