[Python] __debug__ e EAFP
Pietro Battiston
ml a pietrobattiston.it
Mar 10 Maggio 2016 17:56:38 CEST
Il giorno mar, 10/05/2016 alle 12.08 +0200, Luca Bacchi ha scritto:
> In passato la cosa sconvolse pure me. Mi dissero che "assert" va
> usato solo come forma di programmazione difensiva, non ci devi
> implementare della logica, catturando e gestendo le eccezioni.
>
Capisco. Beh, d'ora in poi lo utilizzerò solo come programmazione
difensiva, ad esempio iniziando ogni mio listato con
assert(__debug__)
... :-)
Pietro
> Il giorno 10 maggio 2016 12:03, Pietro Battiston
> <ml a pietrobattiston.it> ha scritto:
> > Salve a tutti,
> >
> > ho appena scoperto __debug__ e l'opzione "-O":
> >
> > https://docs.python.org/2/reference/simple_stmts.html#assert
> >
> > e non so neanche esattamente come formulare la mia domanda, è più
> > una
> > vaga inquietudine... in un linguaggio in cui è "normale" che una
> > exception venga catturata, come si fa a convivere con l'idea che
> > "ottimizzazione" significhi "tutti gli AssertionError in tutte le
> > possibili librerie che sto usando scompaiono"?!
> >
> > È considerata una flag criminale e sostanzialmente inutilizzabile?
> > O dovrei invece pensare che il principio EAFP¹ tendenzialmente non
> > si
> > applica agli AssertionError, che invece vengono usati solo
> > veramente
> > per statement che devono essere sempre vere (e non "false ma
> > catched")?
> > (O mi sfugge semplicemente qualcosa?)
> >
> > Grazie delle illuminazioni,
> >
> > Pietro
> >
> > P.S: di ritorno da PyDataLondon - vi suggerisco caldamente, quando
> > lo
> > metteranno online, il video di http://pydata.org/london2016/schedul
> > e/pr
> > esentation/76/
> >
> > ¹ https://docs.python.org/3/glossary.html#term-eafp
> > _______________________________________________
> > Python mailing list
> > Python a lists.python.it
> > http://lists.python.it/mailman/listinfo/python
> >
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
Maggiori informazioni sulla lista
Python