[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