블로그 방명록 사전 갤러리 게시판 인클봇 인클챗 웹 IRC 위즈 인클플
(동접: 0명/0명) [?]
 


파이썬 2.6 발표

프로그래밍 언어 파이썬(Python)이 2.6 버전을 출시했습니다. 파이썬에 크게 의존하며 살아가는 랜덤여신으로서는 아주 기쁜 소식이군요.

파이썬(Python) 로고

이번 버전은 파이썬 3.0이 나오기 전, 기존 2.x 사용자에게 파이썬 3.0에서 달라질 수많은 사항을 미리 경험하게 하려는 목적도 가지고 있습니다. 달라진 점 중 눈에 띄는 것만 써보겠습니다.

* 'with' 구문

파이썬 2.5에 시험적으로 도입되었던 with 구문이 정식 기능으로 바뀌었습니다. 파이썬 2.5에서는 'from __future__ import with_statement'를 선언해야 with를 쓸 수 있었는데, 이제 안 그래도 됩니다.

with 구문은 코드 중 일부가 독립되어 움직일 때, 코드를 깔끔하게 만들 수 있는 기능입니다. 다음 예제를 보면 이해가 쉽습니다.

with open('test.txt') as f:
    for line in f:
        print line

with 블럭에 들어가기 전에 해당 객체의 __enter__()가, 나오고 나서는 __exit__()가 호출됩니다. with 블럭 안에서 예외가 발생해도 무조건 __exit__()는 호출되기 때문에, 코드를 깔끔하게 유지할 수 있습니다. 위 예제에서는 file 객체의 __exit__()가 열린 파일을 닫게 되지요.

* 사용자별 site-packages 디렉터리

파이썬에서 모듈을 설치하면 site-packages라는 폴더에 모듈 파일이 저장됩니다. 이 폴더는 보통 시스템 영역에 있기 때문에 일반 사용자는 접근이 불가능하지요. 그래서 사용자가 직접 자신만의 site-packages 폴더를 만들 수 있도록 개선되었습니다.

리눅스, 맥: ~/.local/
윈도우: Application Data/Python

이 폴더 안에서 각각 lib/python2.6/site-packages 또는 Python26/site-packages 같이 버전을 지정할 수 있습니다.

* 고급 문자열 포맷

파이썬 3.0에서 들여온 기능 중 하나로, str.format() 함수가 추가되었습니다. % 구문만으로는 만족하실 수 없었던 분들에게 제격입니다.

* 함수로서의 print

사랑하는 print가 드디어 함수가 되는군요 ㅠㅠ. 물론 완전히 함수가 된 것은 아니고, 'from __future__ import print_function'를 해야 함수로 바뀝니다. 이것도 파이썬 3.0에서는 완전히 함수로 고정되게 됩니다. 저는 print가 함수가 아닌 문장 구조로서 동작하는 것을 싫어하면서도 좋아했는데, 좀 아쉽군요.

* 예외 처리 변화

파이썬에서 예외 처리를 할 때 사용하는 try-except 구문은 다음과 같이 사용합니다.

try:
...
except TypeError, exc:
print '으악 오류다'

여기서 TypeError뿐만 아니라 ValueError도 잡아내고 싶다면, 이렇게 바뀝니다.

except (TypeError, ValueError), exc:

하지만 뒤에 붙는 'exc'는 안 줘도 되기 때문에, 다음과 같이 쓸 수도 있습니다.

except (TypeError, ValueError):

여기서 헷갈림이 발생하는데, ()를 생략하는 실수가 그것입니다. 즉, 다음과 같이 쓰면 문법 오류가 됩니다.

except TypeError, ValueError:

그래서 파이썬 3.0부터는 다음과 같이 쓰게 됩니다.

except TypeError, ValueError as exc:

이 변화가 파이썬 2.6에도 적용되었습니다. 현재는 두 방식 모두 지원하지만, 파이썬 3.0에서는 except-as만 지원하게 되니까 빨리 익숙해져야겠군요.

* 바이트 상수 (유니코드 지원)

드디어 기다리고 기다리던 바이트 상수가 도입되었습니다! 파이썬 2.6에서 'from __future__ import unicode_literals'를 하면, 기존의 u''가 ''로 바뀌고, 기존의 ''는 b''로 바뀌게 됩니다. 즉, 기본 문자열이 유니코드로 지정됩니다. 아주 마음에 드는 변화입니다. 문자열을 사용할 때마다 일일이 u''를 붙이는 것이 정말 귀찮았거든요.

그래서 glob.glob() 같은 파일 처리 함수도, 유니코드 문자열을 입력으로 주면 유니코드 파일명을 반환하게 되었습니다.

* 클래스 데코레이터

이제 함수 뿐만 아니라 클래스에도 데코레이터가 적용됩니다.

* fraction 모듈

오오, 재미난 모듈이 추가되었습니다. '분수' 모듈입니다. 다음과 같이 쓴다고 합니다.

>>> from fractions import Fraction
>>> a = Fraction(2, 3)
>>> b = Fraction(2, 5)
>>> float(a), float(b)
(0.66666666666666663, 0.40000000000000002)
>>> a+b
Fraction(16, 15)
>>> a/b
Fraction(5, 3)
(...)
>>> (2.5).as_integer_ratio()
(5, 2)
>>> (3.1415).as_integer_ratio()
(7074029114692207L, 2251799813685248L)

컴퓨터는 일반적인 계산기처럼 소수점 계산을 수행하기 때문에, 무한 소수를 계산할 때는 오차가 발생하게 됩니다. 이것을 사람이 직접 분수를 계산하는 것처럼 수행해줍니다.

* json 모듈

우오옷! JSON 모듈까지 기본 지원이 된 겁니까! 기쁩니다. 지금까지는 simplejson을 쓰고 있었는데, 즐거운 마음으로 갈아탈 수 있겠군요.

* 기타 달라진 사항

- asyncore 모듈과 asynchat 모듈이 다시 활발하게 관리되고 있습니다. 이 두 모듈은 랜덤여신이 예전에 즐겨 사용했지만, 버그 투성이인데다가 코드도 깔끔하지 못해서 요즘은 통 안 쓰고 있었는데, 어떤 새로운 모습을 보여줄지 기대됩니다.

- reduce() 함수가 functools 모듈 소속이 되었습니다. 아직은 빌트인에 있지만, 파이썬 3.0부터는 빌트인에서 사라지게 됩니다. 슬픕니다. ㅠㅠ

- md5 모듈이 사용 금지(deprecated)되었습니다. 이제 hashlib을 써야 합니다.

- 윈도우 95, 98, ME, NT4 지원이 중단되었습니다. 이제 파이썬 2.6은 최소한 윈도우 2000 SP4를 요구합니다. 이것은 위에서 언급한 유니코드 지원과 관련이 있을지도 모르겠군요.


귀도 반 로섬(Guido van Rossum)이 1991년에 창시하여 여기까지 온 파이썬에 앞으로도 많은 발전 있기를 바랍니다.

끝으로 지금까지 파이썬이 어떤 식으로 발전했는지를 보여주는 동영상 하나를 소개합니다.



What’s New in Python 2.6
파이썬 3.0a1 발표와 파이썬 3.x에서 달라질 점

Posted by 랜덤여신

2008/10/04 19:50 2008/10/04 19:50
, , , , , , ,
Response
1 Trackback , 2 Comments
RSS :
http://barosl.com/blog/rss/response/799

Trackback URL : http://barosl.com/blog/trackback/799

Trackbacks List

  1. wafe의 생각

    Tracked from wafe's me2DAY 2008/10/05 13:16 Delete

    파이썬 2.6 발표 - 랜덤여신의 폐인모드. python 2.6의 달라진 점.

Comments List

  1. 김재호 2008/10/05 00:02 # M/D Reply Permalink

    좋은 내용이네요. 잘 읽고 갑니다^^

  2. 루인 2008/10/06 11:49 # M/D Reply Permalink

    2.6 이나왔군요 좋은 정보 잘 얻어갑니다! ^^

Leave a comment
« Previous : 1 : ... 93 : 94 : 95 : 96 : 97 : 98 : 99 : 100 : 101 : ... 804 : Next »

블로그 이미지

랜덤여신이 살아가는 이야기입니다. / 국내 점유율이 1%도 안 되는 리눅스 관련 글을 주로 씁니다. 관심 좀... ㅠㅠ / 컴퓨터쪽 이야기도 씁니다.

- 랜덤여신

Archives

Recent Posts

  1. 안드로이드 시장 점유율, 빠르게 상승 ... (2)
  2. OpenSSH 5.4 출시 - SSH1 비활성화
  3. 아이폰 개발자 프로그램, 약관 전문 폭로 (5)
  4. 스팀 및 밸브 게임, 맥 지원 시작
  5. 유비소프트, 인증 서버 다운으로 게임 ... (2)
  6. MS, 윈도 폰과 엑스박스 동시 지원 게...
  7. MS, IE6 장례식에 조화 보내 (2)
  8. 북한 리눅스 배포판 '붉은 별' (3)
  9. 우분투, 새 디자인 공개 - '빛' 테마 (7)
  10. 미국 토피카 시, '구글 시'로 이름 변경 (4)
  11. 애플, 아이폰 특허 침해로 HTC 고소 - ... (7)
  12. PS3 구형, 달력 버그로 게임 실행 불가능 (2)
  13. EU, 구글 스트리트 뷰에 사생활 침해 경고
  14. 2ch 공격이 무의미한 이유 (61)
  15. 동영상 포맷 화질 비교 - H.264, Ogg T... (7)
  16. 아이튠즈 스토어, 음악 다운로드 100억...
  17. 고 대디, 암호화 없이 비밀번호 저장하... (2)
  18. 페도라 쓴다고 말해! (7)
  19. 유튜브, 3월 13일에 IE6 지원 중단 (2)
  20. 애플, 앱 스토어에서 성인 앱 6000개 제거 (3)
  21. 구글 기어스, HTML5로 대체
  22. 모바일 리눅스에는 인라이튼먼트가 제격? (2)
  23. MS, 유럽 윈도에 '웹 브라우저 선택' ... (10)
  24. 파이어폭스 부가 기능 사이트 차단과 S... (13)
  25. SKT 주최 '안드로이드 개발자 컨퍼런스... (2)
  26. 구글, 위키미디어 재단에 200만 달러 기부 (5)
  27. 오픈 소스 모델은 정말 효율적인가? MS... (10)
  28. 노키아와 인텔, 모바일 플랫폼 '미고' ... (1)
  29. 아이작 아시모프의 '파운데이션', 3D ... (2)
  30. 아이폰용 오페라 미니 발표 - 앱 스토... (7)