2012-05-30 7 views
10

In python 3.2, posso modificare facilmente il tipo di un oggetto. Per esempio:Modifica del tipo di stringa in byte in Python 2.7

x=0 
print(type (x)) 
x=bytes(0) 
print(type (x)) 

che mi darà questa:

<class 'int'> 
<class 'bytes'> 

Ma, in python 2.7, sembra che non posso usare lo stesso modo di farlo. Se faccio lo stesso codice, mi dà questo:

<type 'int'> 
<type 'str'> 

Cosa posso fare per cambiare il tipo in un tipo byte?

+0

La risposta di Martin ha le informazioni pertinenti. –

risposta

8

Cosa posso fare per modificare il tipo in un tipo di byte?

Non è possibile, non esiste un tipo di "byte" in Python 2.7.

Dalla documentazione di Python 2.7 (5,6 Tipi di sequenza): "Esistono sette tipi di sequenza: stringhe, stringhe Unicode, elenchi, tuple, filtri, buffer e oggetti xrange."

Dalla documentazione di Python 3.2 (Tipi 5.6 Sequenza): "Ci sono sei tipi di sequenze:. Stringhe, sequenze di byte (byte oggetti), array di byte (ByteArray oggetti), liste, tuple e oggetti gamma"

11

Non si stanno modificando i tipi, si assegna un valore diverso a una variabile.

Si sta colpendo anche su una delle differenze fondamentali tra python 2.xe 3.x; enormemente semplificato il 2.x tipo unicode ha sostituito il tipo str, che è stato rinominato in bytes. Succede di lavorare nel codice in quanto versioni più recenti di Python 2 hanno aggiunto bytes come alias per str per semplificare la scrittura del codice che funziona con entrambe le versioni.

In altre parole, il codice funziona come previsto.

+0

così in 2.7, c'è qualche modo per me di fare la stessa cosa in 3.2? voglio solo che sia in un tipo di byte. – Smith

+3

Digita 'str' in python 2.7 * è * il tipo' bytes'. –

4

In Python 2.x, bytes è solo un alias per str, quindi tutto funziona come previsto. Inoltre, non stai cambiando il tipo di qualsiasi oggetto qui - stai semplicemente ribattezzando il nome x in un oggetto diverso.

+2

così in 2.7, c'è qualche modo per me di fare la stessa cosa in 3.2? voglio solo che sia in un tipo di byte. – Smith

Problemi correlati