2012-05-30 2 views
10

python 3.2에서 개체 유형을 쉽게 변경할 수 있습니다. 예를 들어 파이썬 2.7에서, 내가 그것을 할 수있는 같은 방법을 사용할 수 없다는 것,Python 2.7에서 문자열을 바이트 유형으로 변경

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

을하지만 :

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

는 나에게이를 줄 것이다. 내가 동일한 코드를 할 경우, 그것은 나에게주는이 :

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

나는 바이트 타입으로 유형을 변경하기 위해 무엇을 할 수 있는가?

+0

Martin의 대답은 관련 정보입니다. –

답변

8

유형을 바이트 유형으로 변경하려면 어떻게해야합니까?

파이썬 2.7에는 '바이트'와 같은 유형이 없습니다. 파이썬 2.7 문서에서

(5.6 시퀀스 유형) : "일곱 개 시퀀스 유형이 있습니다. 문자열, 유니 코드 문자열,리스트, 튜플, bytearrays, 버퍼 및 xrange 객체"

파이썬 3.2 문서 (5.6 시퀀스 유형) : "문자열, 바이트 시퀀스 (바이트 객체), 바이트 배열 (바이어 레이 객체), 목록, 튜플 및 범위 객체의 여섯 개의 시퀀스 유형이 있습니다."

11

유형을 변경하지 않고 변수에 다른 값을 지정합니다.

파이썬 2.x와 3.x의 근본적인 차이점 중 하나에 타격을 입을 수도 있습니다. 2.x 유형을 크게 간소화했습니다 unicode은 으로 이름이 바뀐 str 유형을 대체했습니다. 최신 버전의 Python 2가 str의 별칭으로 bytes을 추가하여 두 버전 모두에서 작동하는 코드 작성을 쉽게하면 코드에서 작동합니다.

즉, 코드가 예상대로 작동하고 있습니다.

+0

2.7에서 3.2에서 동일한 작업을 수행 할 수있는 방법이 있습니까? 난 그냥 바이트 형식으로하고 싶습니다. – Smith

+3

python 2.7 *에서'str'은'bytes' 타입입니다. –

4

파이썬 2.x에서 bytesstr의 별명 일 뿐이므로 모든 것이 예상대로 작동합니다. 또한 여기에있는 객체의 유형을 변경하지 않고 있습니다. 단지 x이라는 이름을 다른 객체에 리 바인드하는 것입니다.

+2

2.7에서 3.2에서 동일한 작업을 수행 할 수있는 방법이 있습니까? 난 그냥 바이트 형식으로하고 싶습니다. – Smith

관련 문제