On Sat, Nov 13, 2010 at 02:39:33PM +0100, lex mlist wrote: > Il giorno 13 novembre 2010 14:23, Marco Giusti <marco.giu...@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 :)
non è giusto così perché `__debug__` c'è sempre, in un caso vale `True` e nell'altro vale `False` e quindi il seguente codice non verrà mai eseguito se `__debug__` è falsa, indipendentemente dal valore di var: if __debug__ and var: ... m. -- Cosa volete? Questo diavolo d'uomo ha sempre le tasche ripiene di argomenti irresistibili. -- Pierre Augustin Caron de Beaumarchais _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python