Massimo Capanni ha scritto: > Il 02 dicembre 2009 18.32, Manlio Perillo <manlio_peri...@libero.it> ha > scritto: >> Massimo Capanni ha scritto: >>> Salve, >>> >>> confesso che ho un po' di timore a postare questo thread, >> e perchè mai? >> > perche' e' un vero salto nel buio :) > a volte mi piacerebbe avere uno di quei libri con la semantica di > python (se esistono),
Credo siamo pochi i linguaggi ad avere una specificazione semantica completa http://en.wikipedia.org/wiki/Formal_semantics_of_programming_languages > come all'universita' li avevo per il pascal e capire che fine fa il > codice che scrivi ... > In Python c'è questo: http://docs.python.org/reference/index.html ma non copre tutto. > [...] > >> Il secondo caso è quando converti una stringa normale in Unicode. >> >>>>> byte_string = 'àè' >>>>> s = unicode(byte_string) >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: >> ordinal not in range(128) >> >>>>> import sys >>>>> reload(sys) > > perche' reload(sys)? > Perchè è il trucco usato per poter accedere a setdefaultencoding. Per evitare di farsi del male, quando l'interprete viene inizializzato, quella funzione viene rimossa dal modulo sys. In particolare, questa operazione viene fatta nel modulo site.py: # Remove sys.setdefaultencoding() so that users cannot change the # encoding after initialization. The test for presence is needed when # this module is run as a script, because this code is executed twice. if hasattr(sys, "setdefaultencoding"): del sys.setdefaultencoding > [...] > > ok, effettivamente adesso le cose cominciano leggermente a tornare :) > > Concludo quindi il mio post con Unicode: conviene trattare tutte le > stringhe come > Unicode per evitare problemi di portabilita'? > Si, e non solo. Una stringa contiene del testo ed il testo è differente da una sequenza di bytes. Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python