2015-07-17 0:53 GMT+02:00 Enrico Bianchi <enrico.bian...@ymail.com>: > On 07/13/2015 11:55 AM, enrico franchi wrote: > >> > [...]
> > a = may_return_null(...) >> if a is not None: >> f(a, ...) >> > Bruttino, non tanto perche` non mi piace, ma per com'e` scritto :) > La sintassi > if a: > f(a,...) > > E` molto piu` elegante (si, e` una pulce che non serve a molto) :) Io ti consiglio di lasciare `a is not None`. `if a` può significare troppe cose, specialmente in Python, e rischi di ritrovarti con un comportamento inaspettato. In Go per evitare problemi del genere hanno deciso che l'istruzione `if` accetta solo espressioni booleane. > > Fanno sempre e solo stack unwind, non danno controllo al programmatore. >> > Mmm... continuo a non capire... Un esempio (o della documentazione)? > > Come dicevo... quello non e' Go idiomatico a mio avviso. >> > Anche qua, mi sembra che tu abbia dato piu` peso al codice che ho usato > come esempio piuttosto che al concetto che volevo esprimere. Personalmente > ritengo che un try/except sia piu` elegante rispetto al dover fare il check > per ogni error che ti viene restituito. http://blog.golang.org/errors-are-values > Quello che intendo e` che, ad esempio, le operazioni di apertura, > scrittura e chiusura di un file in Go devono essere gestite una per una, > mentre in Python le posso gestire tutte nello stesso try/except che, > personalmente, ritengo piu` sensato > > Fino a quando non devi gestire l'errore. A molti le eccezioni piacciono perchè ti fanno "dimenticare" che c'è stato un errore. Il codice è "bello", ma quando devi gestire gli errori poi le cose iniziano ad andare in modo diverso. E la gente inizia a fare: except Exception: # print traceback se non di peggio. Ciao Manlio
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python