[Python] inquisitori [was re: Turbopascal??]

Carlos Catucci carlos.catucci a gmail.com
Mer 5 Gen 2011 18:21:19 CET


> Il GOTO in C io lo ho sempre considerato una bestemmia.

>
> Si vede che non hai mai gestito gli errori. :)
>
> Riscrivi una funzione come questa <http://tinyurl.com/2esxn2q> senza usare
> goto e valuta se il risultato è migliore. Codice limitato a 80 colonne,
> prego.
>

 554     if (!(egtrid = PyObject_CallFunction(group, "i", 2))) { goto exit;
}
 555     if (!(gtrid = _xid_decode64(egtrid))) { goto exit; }
 557     if (!(ebqual = PyObject_CallFunction(group, "i", 3))) { goto exit;
}
 558     if (!(bqual = _xid_decode64(ebqual))) { goto exit; }
 560     /* Try to build the xid with the parsed material */
 561     rv = (XidObject *)PyObject_CallFunctionObjArgs((PyObject
*)&XidType,
 562         format_id, gtrid, bqual, NULL);

/* Versione modificata */

 554   if (!(egtrid = PyObject_CallFunction(group,"i",2)))
 555   {
 556       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
group, m  );
 557   }
 558   if (!(gtrid = _xid_decode64(egtrid)))
 559   {
 560       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
group, m  );
 561   }
 562   if (!(ebqual = PyObject_CallFunction(group, "i", 3)))
 563   {
 564       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
group, m  );
 565   }
 566   if (!(bqual = _xid_decode64(ebqual)))
 567   {
 568       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
group, m  );
 569   }
 570   /* Try to build the xid with the parsed material */
 571   rv = (XidObject *)PyObject_CallFunctionObjArgs((PyObject *)&XidType,
 572   format_id, gtrid, bqual, NULL);

 ... PyObject fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
group, m )
 ... {
 ...   Py_XDECREF(bqual);
       Py_XDECREF(ebqual);
       Py_XDECREF(gtrid);
       Py_XDECREF(egtrid);
       Py_XDECREF(format_id);
       Py_XDECREF(item);
       Py_XDECREF(group);
       Py_XDECREF(m);
       return rv;
 ... }

Non e' piu' pulito cosi?

Greetings
JOKER Ltd.
-- 
Ho guardato in alto, oltre le insegne illuminate e, obliqua su un
grattacielo, c'era la luna. Le ho detto:
"Cosa ci fa una ragazza come te in un posto come questo?"
(*Stefano Benni* - Baol )
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20110105/7377ffac/attachment.html>


Maggiori informazioni sulla lista Python