On 11.09.2021 15:17, Juancarlo Añez wrote:
> Of course, none of this will make sense to programmers with a strong belief 
> that
> assertions must always be turned off in production runs.

You seem to be missing that the Python optimize mode turns off
all code which is related to debugging (__debug__ is set to False,
the compiler doesn't generate code for "if __debug__: ..." statements).

assert is just one of the instances where this happens:

https://docs.python.org/3/reference/simple_stmts.html#grammar-token-assert-stmt

asserts are meant to help find bugs in programs, not check for
user input errors. They document assumptions a programmer has made
when writing the code, which are then tested with a test suite to
make sure the assumptions hold as invariants of the application.

For anything which can go wrong at production run-time, please use
normal if-statement checks and raise appropriate exceptions.

Using assert in such cases is dangerous and can render your
application broken, while everything appears to be running fine
when testing.

Unlike regular if-statement checks, asserts are meant to never
trigger an exception in production code -- which is why they
are removed with -O.

This is not about whether or not to use -O in production environments,
it's about preventing user input exceptions from going unnoticed
when code is run with -O (e.g. the deployment team or a user
decided to always use -O in production).

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Experts (#1, Sep 11 2021)
>>> Python Projects, Coaching and Support ...    https://www.egenix.com/
>>> Python Product Development ...        https://consulting.egenix.com/
________________________________________________________________________

::: We implement business ideas - efficiently in both time and costs :::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               https://www.egenix.com/company/contact/
                     https://www.malemburg.com/

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/CQZDKUPYTPM5A2X55E53SMHLURRSGRDH/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to