[Python] Problema con la condivisione e l'utilizzo di un dict globale

lex mlist lexmlist a gmail.com
Sab 13 Nov 2010 14:39:33 CET


Il giorno 13 novembre 2010 14:23, Marco Giusti <marco.giusti a gmail.com> ha
scritto:

> l'ottimizzazione del bytecode python è molto superficiale, per quanto ne
> sò tutto quello che viene fatto è la rimozione di alcuni statement: gli
> ``assert``, ``__debug__`` viene impostata a ``False`` e vengono
> eliminati (azzerati?) tutti gli attributi ``__doc__`. il test sulla
> variabile ``__debug__`` è un piccolo extra ma neanche troppo furbo,
> tempo fa' non era in grado di eliminare questo statement:
>
>        if __debug__ and var:
>                ...
>
> ora non saprei.


Testato giusto ora, e per l'appunto non lo fà, comunque credo sia giusto
cosi, perchè se non c'è la __debug__ sà di poter evitare di scrivere il
blocco condizionale, perchè probabilmente essendo una variabile globale
riservata all'interprete (non sò se sia possibile definirla o meno, passami
il termine), con -O viene omessa e boh, ma nella presenza di un operatore
"and" con una variabile da verificare a runtime non può evitare di includere
il blocco.

Boh, non so se mi son spiegato, questa è la mia teoria per quello che ho
visto da stamattina ad ora :)


>
>        python -O -c 'import mymodule'
>
> Oh beh, non è un grosso problema, importo tutti i moduli in maniera
ricorsiva (mi pare di aver visto un sistema per farlo), e dovrei avere tutti
i bytecode.

Purtroppo ancora non son riuscito a risolvere il problema di cui il thread,
ho provato aggiungendo la keyword global ma non funziona uguale :(
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20101113/80a565dc/attachment.htm 


Maggiori informazioni sulla lista Python