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


사용자 삽입 이미지
널리 쓰이는 스크립트 언어인 파이썬(Python)의 차기 버전인 파이썬 3.0(파이썬 3000)의 첫 알파가 공개되었습니다. Python 3.0a1 Release에서 받으실 수 있습니다.

파이썬 3.x에서 많은 것이 바뀌었기 때문에, 파이썬 3.x는 2.x와 호환되지 않습니다. 따라서 기존의 파이썬 2.x용 코드는 파이썬 3.x용으로 재작성해야 합니다.

What’s New in Python 3.0에 있는 주요 변경 사항을 번역해 보면 이렇습니다.

* '일반 문자열(str)'은 '바이트(bytes)'가 되고, '유니코드 문자열(unicode)'은 '일반 문자열(str)'이 되었습니다. 즉, 3.x에서 '어쩌고' 라고 쓰면 2.x에서의 u'어쩌고' 와 같은 의미입니다.
>>> 'hello'
'hello' # 3.x의 일반 문자열, 즉 2.x의 유니코드 문자열입니다.
>>> 'hello'.encode('utf-8')
b'hello' # UTF-8로 인코드하니까 바이트가 되네요.
>>> b'hello'.decode('utf-8')
'hello' # 바이트를 디코드하면 일반 문자열이 됩니다.

* 유니코드 문자열이 기본이므로, 파일 입출력 시 인코딩을 지정해야 합니다. 인코딩 기본값은 UTF-8입니다.
>>> open('ascii.txt').read()
'ascii\n'
>>> open('ascii.txt', 'rb').read()
b'ascii\n'
>>> open('utf-8.txt').read()
'\uc720\ud2f0\uc5d0\ud504\ud314\n'
>>> open('euc-kr.txt').read()
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data
>>> open('euc-kr.txt', encoding='euc-kr').read()
'\ud558\ud558\ud558 \uc774\ub140\uc11d \ud558\ud558\ud558\n'

* map(), filter(), zip()이 이터레이터를 반환합니다.
* apply(), callable(), coerce(), execfile(), file(), reduce(), reload()가 사라집니다. 헉... reload() 말고 뭘 쓰라는 거지...
* dict의 .keys(), .items(), .values()도 이터레이터를 반환합니다.
* 1/2는 0.5고, 1//2는 0입니다.
* print가 함수로 바뀌었기 때문에, print('어쩌고')로 써야 합니다. 따라서 2.x에서 print만 써서 줄바꿈하던 것도 안 됩니다.

약간 덜 중요한 변경 사항입니다.

* 소스 파일의 기본 인코딩이 UTF-8로 바뀌었습니다.
* 변수명/함수명에 한글을 쓸 수 있습니다! 한글 변수명을 써서 코딩할 수 있겠군요. 한번 해 보고 싶어요.
* 모든 예외 객체가 상속하는 BaseException이 생겼습니다.
* repr()과 같은 의미의 `어쩌고`가 사라졌습니다. obfuscator 토끼군에게는 안 좋은 소식이 되겠네요.
* !=과 같은 의미의 <>가 사라졌습니다. 그런데 파이썬에도 <>가 있었나요...
* dict.has_key()가 사라졌습니다. key in dict 표현을 쓰라는 뜻인가 봅니다.

그 외에도 많은 것이 바뀌었습니다.

정말 많은 게 바뀌어서, 당분간 혼동이 올 듯합니다. 기존의 코드를 파이썬 3.x로 옮기는 등의 대비를 미리 해놔야겠네요.

Posted by 랜덤여신

2007/09/03 18:28 2007/09/03 18:28
,
Response
No Trackback , 6 Comments
RSS :
http://barosl.com/blog/rss/response/514

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

Comments List

  1. 시노 2007/09/04 11:23 # M/D Reply Permalink

    흐흐 ~파이썬도 점점 엄격해지는군요

    1. 랜덤여신 2007/09/07 23:44 # M/D Permalink

      유니코드 자료형이 있었다는 사실 하나만으로도 파이썬은 이미 충분히 엄격한 언어였습니다. PHP 등과 비교하면 더욱 그렇지요.

      그래도 이번 변화는 환영합니다. 지금까지 u'' 쓰느라 귀찮아 죽는 줄 알았습니다.

  2. nidev 2007/09/06 13:39 # M/D Reply Permalink

    {'a':'cc'}.has_key('a') 를 못쓰게 되다니 아쉽군요.
    근데 개인적으로는 이상하게도 if dict.has_key(x) is True: 보다는
    if x in dict.keys() 를 좀더 선호하게 되더군요.

    1. 랜덤여신 2007/09/07 23:50 # M/D Permalink

      저는 if x in dict: 를 씁니다.

  3. Powring 2007/09/06 20:42 # M/D Reply Permalink

    헐... 달았던거 떼고 새로 달아야하는건가요... ㄷㄷㄷ

    1. 랜덤여신 2007/09/07 23:53 # M/D Permalink

      달았던 것은 떼고, 떼었던 것은 붙여야 하겠군요.

Leave a comment
« Previous : 1 : ... 343 : 344 : 345 : 346 : 347 : 348 : 349 : 350 : 351 : ... 769 : Next »

블로그 이미지

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

- 랜덤여신

Archives

Recent Posts

  1. 심비안, 오픈 소스 전환 완료 (3)
  2. 노키아 N900 스마트폰에서 맥 OS X 돌리기 (1)
  3. 리눅스 커널 트리에서 안드로이드 커널... (8)
  4. 킨들용 비공식 Qt 환경
  5. 우분투 넷북 에디션, 오픈 오피스 대신... (2)
  6. 네이버 비디오, 서비스 종료 (6)
  7. 페이스북, PHP 컴파일러 '힙합' 출시 -... (1)
  8. 오픈 오피스, 독일 시장 점유율 20% 달성 (3)
  9. YES24와 지마켓, 비 IE 카드 결제 중단 (10)
  10. 페이스북, PHP 성능 향상을 위해 컴파... (7)
  11. 파이어폭스 모바일 1.0 출시 (4)
  12. 구글, 확장 DNS 프로토콜 제안 - 가장 ... (1)
  13. 아이폰, 3G를 통한 인터넷 전화 허용 (5)
  14. 우분투, 기본 검색 엔진을 야후로 변경 (3)
  15. 구글 보이스, 앱 스토어를 우회하여 아... (1)
  16. 소스 포지, '테러 지원국' 접근 차단 (2)
  17. 이메일 중 95%는 스팸 (1)
  18. 유튜브, HTML5 비디오 지원 - video 태그 (7)
  19. 국제 우주 정거장에 첫 인터넷 개통 (1)
  20. 파이어폭스 3.6 출시 - 페르소나 지원,... (2)
  21. 아이폰 앱 스토어, 99.4% 시장 점유율 ... (1)
  22. 하이쿠, KDE 지원 시작 - KOffice 포함
  23. ReactOS, 새로운 개발 방식 도입 - 와...
  24. 트윗픽 가치, 1000만 달러 이상? (2)
  25. 2009년 가장 장애인 친화적인 게임 - ...
  26. 순수 자바스크립트 기반 플래시 플레이... (2)
  27. 구글, ext2 버리고 ext4 사용 (2)
  28. 지마켓에서 ActiveX 없이 신용 카드 결... (16)
  29. 구글, 중국 검열 중단 요구 - 서비스 ... (2)
  30. 터치 스크린 정확도 비교 - 아이폰 승,... (2)