Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Example use of assert in Python?

I've read about when to use assert vs. exceptions, but I'm still not "getting it". It seems like whenever I think I'm in a situation where I should use assert, later on in development I find that I'm "looking before I leap" to make sure the assert doesn't fail when I call the function. Since there's another Python idiom about preferring to use try-except, I generally end up ditching the assert and throwing an exception instead. I have yet to find a place where it seems right to use an assert. Can anyone come up with some good examples?

like image 501
Colin Avatar asked Sep 15 '10 19:09

Colin


2 Answers

A good guideline is using assert when its triggering means a bug in your code. When your code assumes something and acts upon the assumption, it's recommended to protect this assumption with an assert. This assert failing means your assumption isn't correct, which means your code isn't correct.

like image 69
Eli Bendersky Avatar answered Sep 25 '22 16:09

Eli Bendersky


tend to use assert to check for things that should never happen. sort of like a sanity check.

Another thing to realize is that asserts are removed when optimized:

The current code generator emits no code for an assert statement when optimization is requested at compile time.

like image 37
fseto Avatar answered Sep 21 '22 16:09

fseto