[Python] C'e' un modo per abbreviare questa sintassi?

Gianni Valdambrini gianni_valdambrini a yahoo.it
Mer 7 Nov 2012 10:00:01 CET


Ti consiglierei una cosa come:

for ..:
    try:
        my_obj.codice = int(numero)
    except ValueError:
        pass

    altro codice...

In pratica usa l'approccio EAFP piuttosto che il LBYL.. se non conosci l'argomento ti consiglio di leggerti quello che dice Alex Martelli nel suo libro Python in a Nutshell e che puoi trovare a questo indirizzo:
http://books.google.it/books?id=JnR9hQA3SncC&pg=PA134&lpg=PA134&dq=python+in+a+nutshell+eafp&source=bl&ots=Jb6TGw16-t&sig=r9or9Man_6S4bAbNTfVto72aGxw&hl=it&sa=X&ei=SSKaUL20C6uZ0QWJkIHwDw&ved=0CDYQ6AEwAg#v=onepage&q=python%20in%20a%20nutshell%20eafp&f=false





________________________________
 Da: "orsomannaro a gmail.com" <orsomannaro a gmail.com>
A: Discussioni generali sul linguaggio Python <python a lists.python.it> 
Inviato: Martedě 6 Novembre 2012 18:36
Oggetto: Re: [Python] C'e' un modo per abbreviare questa sintassi?
 
Il 06/11/2012 18:11, Vittorio Spina ha scritto:
> mi sfugge l'indentazione sotto l'if

hai ragione

for ... :
    ...
    numero = get_num(...)
    if not numero.isdigit(): continue
    my_obj.codice = int(numero)
     ...

In pratica se 'numero' non risulta essere convertibile in un valore numerico posso saltare il resto dell'elaborazione e passare all'elemento successivo del ciclo.



Sto cercando di evitare:

for ... :
    ...
    numero = get_num(...)
    if numero.isdigit():
        my_obj.codice = int(numero)
         ...

dato di questi controlli che ce ne sono diversi e quindi nidifico gli if.


_______________________________________________
Python mailing list
Python a lists.python.it
http://lists.python.it/mailman/listinfo/python
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20121107/27a5c131/attachment.html>


Maggiori informazioni sulla lista Python