티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
사용자 삽입 이미지

 드디어! 파이썬 3.0 이 발표되었다(사실 딱히 기다리지는 않았다;;) 그래서 당연한 호기심으로 어떤 변화가 있고, 어떤 좋은 기능들이 추가되었는지 살펴보았다. 파이썬 3.0 의 새로운 점에 대한 링크는 여기이다. 꽤 긴 문서라서 눈에 잘 들어오는 부분만 적어본다.

 먼저 알아둬야 할것은 3.0 은 2.6과의 하위 호환성을 가지지 않는다는 점이다. 아마 이것 때문에 꽤 말들이 많을 것 같다.

- print 의 진정한 함수화
   - print "abcd" 이렇게 이제 못 쓴다. print("abcd") 이렇게 제대로 써야한다.
   - print "abcd", 이렇게 줄바꾸지 않게 하던건, print("abcd", end=" ") 이렇게 쓴다.
- list 대신 view 와 iterator 를 쓴다고 합니다. 기존에 list 로 반환하던 함수들이 없어지거나 함
- 비교 연산자가 비교가 무의미한 경우에 TypeError 를 발생시킨다. None < None 같은 경우
- "1/2" 는 0.5(float) 을 돌려줌. "1//2" 는 0(int)를 돌려줌
- sys.maxint 는 int 의 제한이 없어져서 사라짐
- 모든 문자열은 유니코드이다.(단 인코딩된 유니코드는 바이너리이다)
   - 유니코드를 위해 u"..." 와 같은 형식이 필요없다
- 기본 소스 인코딩은 utf-8 이다
- as 와 with 는 예약된 단어이다(실제로 2.6부터였다)
- True, False, None 은 예약된 단어이다(2.6에서부터 None 은 강제였다)
- 비교연산자 <> 는 제거되었다(!= 를 써라)
- 오래된 라이브러리들이 제거되었다. gopherlib, md5 는 제거되었다(md5는 hashlib 로 대체)
- raw_input() 이 input() 으로 대체되었다
- 파이썬 2.5보다 10% 느려졌다. 일단 3.0 발표 후 개선할 것이다.


유니코드 지원과 "1/2" 연산의 변화가 눈에 제일 띄인다. 대세는 유니코드라고 하니 유니코드는 일종의 당연한듯하다.

 그런데 "1/2" 의 결과가 0 이라는 것은 초보 개발자들이 의아해할 만한 것이었는데, 이제 제대로(?) 0.5가 됨으로써 파이썬은 더욱 쉬운(!) 언어가 된 듯하다.

공식 문서에서 파이썬 2.5 에서 파이썬 3.0 으로 소스를 포팅하는 과정은 다음과 같다.

1. 2.6버젼으로 코드를 포팅한다.
2. 2.6에서 -3 옵션으로 코드를 실행해본다. 여기서 발생하는 경고등을 처리해준다.
3. 3.0에 맞게 수정해주는 2to3 이라는 프로그램을 사용한다
.

이 과정에서 항상 가정은 테스트 케이스가 있고, 이것을 통과하는지 체크 잘하라는 것이다. 포팅 과정은 일종의 리팩토링이라 생각할 수 있겠다.

 당장은 2.6 코드를 돌릴 때 -3 옵션을 주도록 하자.



 파이썬은 아직 나에게는, 필요할 때 쓰는 정말 내게는 필요할 때 생각나는 작은 칼 정도의 느낌이다. 지금 주 용도는 ZViewer 에서 다국어 번역이 빠진게 없나, 리소스 파일이 영어, 한국어 나누어져있는데 서로 다른것이 없나 정도를 체크하는 간단한 유닛테스트, 그리고 소스 파일과 설치 파일등의 버젼을 한꺼번에 바꿔주는 정도이다. 원래 스크립트 언어라는 것이 이런 용도에 맞기도 한것 같고, 아직 뭔가 제대로 된 프로그래을 짜려는 엄두가 잘 안나긴 한다. 과연 앞으로 어떻게 나에게 더욱 다가오게 될까 생각해보게 되는 3.0의 발표(!)이다.

댓글
최근에 올라온 글
Total
Today
Yesterday