[Python-ideas] Repurpose `assert' into a general-purpose check

Ivan Pozdeev vano at mail.mipt.ru
Tue Nov 28 13:27:19 EST 2017


On 28.11.2017 20:23, Ethan Furman wrote

> On 11/28/2017 08:03 AM, Ivan Pozdeev via Python-ideas wrote:
>> On 28.11.2017 16:36, Nick Coghlan wrote:
>
>>>    it doesn't need to be a statement any more
> >
>> Another benefit of a statement vs function is only evaluating the 
>> error-related arguments when there's an error
>
> The bulk of any processing in assert (or ensure()) should be the 
> actual check -- if that fails, only state information should be 
> included in the exception as anything more complicated runs the risk 
> of also being wrong as the code is now in a failed state.  In other 
> words, the "error-related arguments" will often be extremely cheap 
> compared to the test itself.
>
My experience is the contrary. The check is usually trivial -- a type 
check or comparison. While a useful error message contains problem 
details, so it incorporates string formatting from a variable or two or 
expressions thereof, like "expected <type>, got <type(var)>".
> -- 
> ~Ethan~
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/

-- 
Regards,
Ivan



More information about the Python-ideas mailing list