블로그 방명록 사전 갤러리 게시판 인클봇 인클챗 웹 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 : ... 378 : 379 : 380 : 381 : 382 : 383 : 384 : 385 : 386 : ... 804 : Next »

블로그 이미지

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

- 랜덤여신

Archives

Recent Posts

  1. 안드로이드 시장 점유율, 빠르게 상승 ... (2)
  2. OpenSSH 5.4 출시 - SSH1 비활성화
  3. 아이폰 개발자 프로그램, 약관 전문 폭로 (5)
  4. 스팀 및 밸브 게임, 맥 지원 시작 (1)
  5. 유비소프트, 인증 서버 다운으로 게임 ... (3)
  6. MS, 윈도 폰과 엑스박스 동시 지원 게...
  7. MS, IE6 장례식에 조화 보내 (2)
  8. 북한 리눅스 배포판 '붉은 별' (4)
  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)