Python 3.0 出た

Python 3.0 final released

Python 3.0 final is now available.

Published: Wed, 03 Dec 2008 23:59 -0500

http://www.python.org/news/index.html#Wed03Dec20082359-0500

なんか IDLE 上で実行すると

>>> Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python30\lib\tkinter\__init__.py", line 1405, in __call__
    return self.func(*args)
  File "C:\Python30\lib\idlelib\MultiCall.py", line 165, in handler
    r = l[i](event)
  File "C:\Python30\lib\idlelib\ScriptBinding.py", line 124, in run_module_event
    code = self.checksyntax(filename)
  File "C:\Python30\lib\idlelib\ScriptBinding.py", line 86, in checksyntax
    source = f.read()
  File "C:\Python30\lib\io.py", line 1724, in read
    decoder.decode(self.buffer.read(), final=True))
  File "C:\Python30\lib\io.py", line 1295, in decode
    output = self.decoder.decode(input, final=final)
UnicodeDecodeError: 'cp932' codec can't decode bytes in position 8-9: illegal multibyte sequence

とか、かましてくれるようになっちゃったんですけどー*1
まあコマンドラインから実行すればいいだけですけどね。

class いきもの:
    def 鳴く(私の):
        print(私の.鳴き声)

class 蛙(いきもの):
    def __init__(私の):
        私の.鳴き声 = 'ガーガーガー'

class 家鴨(いきもの):
    def __init__(私の):
        私の.鳴き声 = 'ガーガーガー'

かえる = 蛙()
あひる = 家鴨()

かえる.鳴く()
あひる.鳴く()

Python でも遅ればせながら*2識別子に(ASCII以外の)Unicode文字使えるようになりましたよ*3。やったね。

F:\Python\3000>c:\python30\python test.py
ガーガーガー
ガーガーガー

……コマンドプロンプト使いにくいよ。はやく IDLE ちゃんとしてくれないかな。

*1:エンコード指定を無視してローカル環境のエンコードを使ってしまっているっぽい

*2:Javaなんかは最初からOKだし、C言語すらもC99にてOKになっている

*3:PEP 3131 -- Supporting Non-ASCII Identifiers | Python.org