TSNETWiki
テキストとスクリプトの世界
開始行:
*はじめに [#gfe54b26]
本文はGuido van Rossumの"What's New In Python 3.0"( htt...
#contents
*[[What's New In Python 3.0:http://docs.python.org/3.0/wh...
-Python 3.0 の新機能
-著者:Guido van Rossum
-日付:2009年1月4日
この記事は、Python 2.6と比較したPython 3.0の新機能につ...
この記事では、すべての新機能の完全な仕様を説明するつも...
(訳注:
PEP = Python Enhancement Proposal( http://www.python.org/...
Pythonの仕様変更の提案及び進行状況の報告の場。Pythonista...
時間的制約のため、この文書は(かくあるべきとされるほど...
*多くの人がぶつかる障害 [#bc2ef528]
このセクションでは、Python 2.5を使用しているほとんどの...
**『print』は関数に [#gf4255fc]
古いprint文の特殊な文法は廃止され、print関数(とキーワ...
||COLOR(gray):旧:|COLOR(gray):print "The answer is" , 2 ...
|~|新:|print ( "The answer is" , 2 * 2 )|
||COLOR(gray):旧:|COLOR(gray):print x , # 末尾のコンマが...
|~|新:|print ( x , end = " " ) # 改行の代わりにスペース...
||COLOR(gray):旧:|COLOR(gray):print # 改行を出力|
|~|新:|print() # 『print関数』を呼び出す必要があります|
||COLOR(gray):旧:|COLOR(gray):print >> sys.stderr , "fat...
|~|新:|print("fatal error", file = sys.stderr)|
||COLOR(gray):旧:|COLOR(gray):print(x , y) # repr( (x, y...
|~|新:|print ( ( x , y ) ) # print(x, y)とは別!|
アイテムとアイテムの間のセパレータをカスタマイズすること...
例えば……
> print("There are <", 2 ** 32, "> possibilities!", sep =...
<は、
> There are <4294967296> possibilities!
<を生成します。
注記:
-print関数は、古いprint文の『softspace』をサポートしてい...
は『print("A¥n", "B")』は『"A¥n B¥n"』を出力します。
-最初あなたは、インタラクティブモードで何度も『print x』...
-2→3コード変換ツールを使うと、全print文が自動的にprint...
(訳注:
『2→3コード変換ツール』[原文:2to3 source-to-source conv...
Python 2.xのソースコードをPython 3.0準拠に変換してくれ...
**リスト(list)の代りのビュー(view)とイテレータ(iterator) ...
いくつかのよく知られているAPIは、もはやリストを返しません。
-辞書(dict)のメソッドのdict.keys, dict.items, dict.values...
-また、dict.iterkeysメソッドとdict.iteritemsメソッドとdic...
-map関数とfilter関数は、イテレータ(iterator)を返します。...
-range関数は、任意のサイズの値で動作する以外は、xrange関...
-zip関数はイテレータを返します。
訳注: 3.0以降 map は生成したリストではなくジェネレーター...
いわゆる void コンテキストでの map の呼び出しではmap の引...
**順序の比較 [#ue1f6102]
Python 3.0では順序の比較のルールを簡略化しています。
-順序比較演算子(<, <=, >=, >)は、比較するものに意味のある...
-sorted組み込み関数とlist.sortメソッドは、もはや『cmp』を...
-cmp関数は無くなったものとみなしましょう。そして__cmp__特...
(訳注:True - False ⇒ 1, False - True ⇒ -1)
**整数 [#me2290b2]
-[[[PEP 0237]:http://www.python.org/dev/peps/pep-0237/]] ...
-[[[PEP 0238]:http://www.python.org/dev/peps/pep-0238/]] ...
-sys.maxint定数は削除され、もはや整数値に上限はありません...
-『ロング整数』のreprでは、後ろに'L'をつけません。従って...
(訳注:reprはrepr関数での出力を意味するとともに、オブジ...
-八進法のリテラルは、『0720』ではなく『0o720』と書きます。
**『Unicode 対 8ビット』の代わりに『テキスト 対 データ』...
バイナリデータとUnicodeについて、あなたが知っている全て...
-Python 3.0では、『テキストと(バイナリ)データ』の概念を...
-この設計思想の変更の結果、ほぼ全てのUnicode、エンコーデ...
エンコードされていない全てのテキストで『unicode』型を使い...
-あなたはもはや、 Unicodeテキストには『u"..."』リテラルを...
-str型とbytes型が混同不可能なため、いつでも明示的に相互に...
> bytes(s, encoding=...)
<や
> str(b, encoding=...)
<を使うこともできます。
-str型と同様に、bytes型も不変型です。バッファされたバイナ...
-raw文字列リテラル内のすべてのバックスラッシュは、文字通...
-組み込みのbasestring抽象型は削除されました。かわりにstr...
-ファイルをテキストファイルとして開く(open関数のデフォル...
-ファイル名はAPIから(Unicode)文字列として通って、返されま...
-システムによって使用可能にされたバイト列が、デフォルトの...
-[[[PEP 3138]:http://www.python.org/dev/peps/pep-3138/]] ...
-[[[PEP 3120]:http://www.python.org/dev/peps/pep-3120/]] ...
-[[[PEP 3131]:http://www.python.org/dev/peps/pep-3131/]] ...
-StringIOとcStringIOモジュールはなくなりました。代わりに...
-詳しくは、Python 3.0で更新された『the Unicode HOWTO』を...
*構文の変更点の概要 [#v1b4f455]
このセクションではPython 3.0のすべての構文の変化の概要を...
**新しい構文 [#uf70e732]
-[[[PEP 3107]:http://www.python.org/dev/peps/pep-3107/]] ...
-[[[PEP 3102]:http://www.python.org/dev/peps/pep-3102/]] ...
-キーワード引数が、クラス定義の基底クラスのリストの後に使...
-[[[PEP 3104]:http://www.python.org/dev/peps/pep-3104/]] ...
-[[[PEP 3132]:http://www.python.org/dev/peps/pep-3132/]] ...
> (a, *rest, b) = range(5)
<この書式では、aに0を、bには4を、そしてrestに [1, 2, 3] ...
-辞書の内包表記『{k: v for k, v in stuff}』は、『dict(stu...
(訳注:stuffは『要素』なので、
> ( (1,100),(2,200) )
<のようなkey-value対応のモノを想定している。しかし、たと...
> x = dict(d)
<は通っても
> x = {k: v for k, v in d}
<は通らない。この場合、
> x = {k: v for k, v in d.items()}
<とする必要がある)
-{1, 2}のような集合リテラル。注意:{}は空の辞書のリテラル...
例:
> {x for x in stuff}
<は
> set(stuff)
<と同等ですが、より柔軟です
-新しい8進数のリテラルは、『0o720』のように書きます(2.6...
-『0b1010』のような新しい二進法リテラル、(2.6でも既に使...
-byte列のリテラルは'b'か'B'を先頭につけます。そして新しい...
**変更された構文 [#t6780755]
-[[[PEP 3109]:http://www.python.org/dev/peps/pep-3109/]]...
-『as』と『with』が新しく予約語になりました(実際は2.6か...
-『except exec, var』が『except exc as var』という書きか...
-[[[PEP 3115]:http://www.python.org/dev/peps/pep-3115/]] ...
>>> class C:
... __metaclass__ = M
...
の代りに、
>>> class C (metaclass = M):
... ...
を使って下さい。モジュール全体で使える__metaclass__変数は...
-リスト内包記法はもはや
> [... for var in item1 , item2 , ...]
<という書きかたをサポートしていません。代わりに
> [... for var in ( item1 , item2 , ...)]
<を使用してください。また、リストの内包表現は別の意味を持...
(訳注:2.xに於けるリストの内包記法で用いられる変数(例え...
《Python 2.x》
>>> x = 100
>>> [x for x in range(10)] # リストの内包記法
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
9 ←変数xの内容が変更されている
>>> x = 100
>>> (x for x in range(10)) # ジェネレータの内包記法
<generator object at 0x4031362c>
>>> x
100 ←変数xの内容が変更されていない
>>> list(x for x in range(10)) # ジェネレータの内包記法...
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
100 ←変数xの内容が変更されていない
しかし、Python 3.0ではリスト内包記法の変数もローカルと...
《Python 3.0》
>>> x = 100
>>> [x for x in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
100
>>>
)
-省略記号『...』(三連のピリオド)は、字句要素としてどこで...
**削除された構文 [#b22855e7]
-[[[PEP 3113]:http://www.python.org/dev/peps/pep-3113/]] ...
>>> def foo(a, (b, c)):
...
……という書きかたは、もはや使えません。代わりに
>>> def foo(a, b_c):
... b, c = b_c
などとして下さい
-バックティック(backticks)は削除されました(代わりにrepr...
-『<>』は削除されました。代わりに『!=』を使用してください
-予約語の削除。『exec』はもうすでにキーワード(予約語)では...
-整数リテラルでは、もはや末尾の'l'または'L'はサポートされ...
-文字列リテラルでは、もはや『u'...'』や『U'...'』はサポー...
-『from module import *』構文は、モジュールレベルのみ許可...
-相対importとして許されるのは、『from .[module] import na...
-旧スタイルのクラスはなくなりました。
*Python 2.6 において既に提示された変更 [#b51f70d6]
おそらく多くのユーザーはPython 2.5 から Python 3.0 へ直...
-[[[PEP 343]:http://www.python.org/dev/peps/pep-0343/]] w...
-[[[PEP 366]:http://www.python.org/dev/peps/pep-0366/]] ...
-[[[PEP 370]:http://www.python.org/dev/peps/pep-0370/]] ...
-[[[PEP 371]:http://www.python.org/dev/peps/pep-0371/]] ...
-[[[PEP 3101]:http://www.python.org/dev/peps/pep-3101/]] ...
-[[[PEP 3105]:http://www.python.org/dev/peps/pep-3105/]] ...
-[[[PEP 3110]:http://www.python.org/dev/peps/pep-3110/]] ...
-[[[PEP 3112]:http://www.python.org/dev/peps/pep-3112/]] ...
-[[[PEP 3116]:http://www.python.org/dev/peps/pep-3116/]] ...
-[[[PEP 3118]:http://www.python.org/dev/peps/pep-3118/]] ...
-[[[PEP 3119]:http://www.python.org/dev/peps/pep-3119/]] ...
-[[[PEP 3127]:http://www.python.org/dev/peps/pep-3127/]] ...
-[[[PEP 3129]:http://www.python.org/dev/peps/pep-3129/]] ...
-[[[PEP 3141]:http://www.python.org/dev/peps/pep-3141/]] ...
*ライブラリの変更 [#m9eebcd7]
時間の制約のため、この文書は標準のライブラリの、あまり...
-多くの古いモジュールが削除されました。 (たとえば)いく...
-bsddb3パッケージは、コアの標準ライブラリの中のその存在が...
-あるモジュール群は改称されました。なぜなら古い名前は[[PE...
|旧名称|⇒|新名称|
|_winreg|⇒|winreg|
|ConfigParser|⇒|configparser|
|copy_reg|⇒|copyreg|
|Queue|⇒|queue|
|SocketServer|⇒|socketserver|
|markupbase|⇒|_markupbase|
|repr|⇒|reprlib|
|test.test_support|⇒|test.support|
-Pythonの2.xのモジュールに共通のパターンは、例えばpickle...
-幾つかの関連するモジュール群はパッケージにまとめられてい...
結果として新しいパッケージは:
-dbm (anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb).
-html (HTMLParser, htmlentitydefs).
-http (httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTP...
-tkinter (turtleモジュールを除く全てのTkinter関連のモジュ...
-urllib (urllib, urllib2, urlparse, robotparse).
-xmlrpc (xmlrpclib, DocXMLRPCServer, SimpleXMLRPCServer).
[[PEP 3108:http://www.python.org/dev/peps/pep-3108/]]でカ...
-setsモジュールを抹消します。組み込みのset関数を使用して...
-sysモジュールの整理: sys.exitfunc関数、sys.exc_clear関数...
-array.array型の整理: readメソッドとwriteメソッドはなくな...
-operatorモジュールの整理: sequenceIncludes関数とisCallab...
-threadモジュールの整理: acquire_lock関数とrelease_lock関...
-randomモジュールの整理: jumpahead関数とそのAPIが削除され...
-newモジュールがなくなりました。
-tempfileモジュールのために、os.tmpnam関数、os.tempnam関...
-tokenizeモジュールがbytesに対して働くように変更されまし...
-string.lettersとその仲間(string.lowercaseとstring.upperc...
-__builtin__モジュールがbuiltinsに改称されました(アンダー...
*PEP 3101: 文字列書式設定の新しいアプローチ [#p70aeebc]
-『%』による文字列書式の操作に代わって、新しい組み込み文...
*例外処理の変更 [#j655fa71]
例外の発生や捕捉についてのAPIは整理されました。そして新...
-[[[PEP 0352]:http://www.python.org/dev/peps/pep-0352/]] ...
-ほぼすべての例外は、実質的にはExceptionから派生します。 ...
-StandardErrorは削除されました(2.6に於いて既に)
-Exceptionsは、もはやシーケンスとして動作していません。そ...
-[[[PEP 3109]:http://www.python.org/dev/peps/pep-3109/]] ...
-[[[PEP 3110]:http://www.python.org/dev/peps/pep-3110/]] ...
-[[[PEP 3134]:http://www.python.org/dev/peps/pep-3134/]] ...
> raise SecondaryException() from primary_exception
<(primary_exceptionはexceptionオブジェクトから生成された...
-[[[PEP 3134]:http://www.python.org/dev/peps/pep-3134/]] ...
-Windowsがで拡張モジュールのロードに失敗したときのメッセ...
*雑多なその他の変更 [#fffbcb1e]
**演算子や特殊メソッド [#cd5b41f0]
-『!=』は、『==』がNotImplementedを返さない限り、『==』の...
-『unbound methods(束縛されていないのメソッド)』というコ...
(訳注:
>>> class X:
... def ooo(self, other):
... print(self,other)
...
>>> X.ooo(1,2)
1 2
>>>
……というようなことが出来るようになった、という意味。以前...
-__getslice__メソッドと__setslice__メソッド、そして__dels...
-[[[PEP 3114]:http://www.python.org/dev/peps/pep-3114/]] ...
(訳注:そのかわりにイテレータオブジェクトの順送りには、n...
-特殊メソッド__oct__と__hex__が削除されました。oct関数とh...
-__members__と__methods__のサポートが打ち切られました。
-func_Xと名づけられていた関数の属性は、__X__というフォー...
-__nonzero__メソッドは、__bool__メソッドになりました。
**組み込み(関数,オブジェクト,型など) [#zb8fc6a6]
-[[[PEP 3135]:http://www.python.org/dev/peps/pep-3135/]] ...
-[[[PEP 3111]:http://www.python.org/dev/peps/pep-3111/]] ...
-新しい組み込み関数のnextは、オブジェクトの__next__メソッ...
-intern関数はsys.intern関数へ移動しました。
-apply関数は削除されました。『apply(f, args)』の代わりに...
-callable関数は削除されました。『callable(f)』の代わりに...
-coerce関数は削除されました。この関数は、もはや旧スタイル...
-execfile関数は削除されました。『execfile(fn)』の代わりに...
-file関数が削除されました。open関数を使用してください。
-reduce関数が削除されました。もし本当に必要なら、functool...
-reload関数は削除されました。imp.reload関数を使用してくだ...
-dict.has_keyメソッドは削除されました。in 演算子を使用し...
*ビルドとC言語へのAPIの変更 [#wb333e75]
時間の制約があるため、これでは、 C言語へのAPIの変更の、...
-Mac OS 9やBeOSやRISCOSやIrix、そしてTru64を含め、そして...
-[[[PEP 3118]:http://www.python.org/dev/peps/pep-3118/]] ...
-[[[PEP 3121]:http://www.python.org/dev/peps/pep-3121/]] ...
-[[[PEP 3123]:http://www.python.org/dev/peps/pep-3123/]] ...
-実行を制御するためのC APIは、もうサポートされていません。
-CのAPIのPyNumber_Coerce、PyNumber_CoerceEx、PyMember_Ge...
-新しいCのAPIのPyImport_ImportModuleNoBlockは、PyImport_...
-Cレベルのスロットとメソッドのブール変換の改称:nb_nonzer...
-METH_OLDARGSとWITH_CYCLE_GCがCのAPIから削除されました。
*パフォーマンス [#t344b066]
3.0の一般化の正味の結果は、pystoneベンチマークでPython3...
*Python 3.0への移植 [#g78fd356]
既存のPython 2.5または2.6のソースコードをPython 3.0に移...
0. (前提条件)優れたテスト適用から開始します。
1. Python 2.6へ移植。このステップは、Python 2.x からPytho...
2. (まだ2.6を使用して)-3コマンドラインスイッチを(ひねっ...
3. 2→3コード変換ツールをソースコードツリーに対して走ら...
Python2.6と3.0両方の下で不変になるソースコードを書き込...
C拡張のPython3.0への移植のためには、どうぞ『Porting Exten...
RIGHT:'''訳出 機械伯爵(in TSNET)'''
*翻訳についてのおことわり&aname(okoto); [#o239a6e6]
この文を訳出するに当たって、以下のルールを適用しました
-固有のモジュール名やオブジェクト名、あるいは日本語訳を行...
-xxx()の形式となっているものは、便宜上全て「〜関数」と訳...
-文中の書式/記法などについては、原文中の表現に関係なく『...
-文中の表現では内容が不鮮明と思われる箇所は、訳注として適...
*謝辞 [#t622b62c]
-本文を訳出するに当たって、TSNETのBruce.さん、Fe2+さんに...
*関連ページ [#ubd5b16c]
-[[Python 3.x>Python3000]]
-[[Python一般について>Python]]
-[[ここがヘンだよPythonista]]
*リンク [#l8533a94]
-[[(原文)What's New In Python 3.0 (final version):http://...
*コメント、修正記録など [#od96f92e]
Wikiの強み、ということで、訂正箇所があれば「自由に訂正」...
**履歴 [#m81ef0c1]
-2009.01.17:アップ
-2009.01.24:予約語に関する訳注を一部削除
-2009.01.26:PEPにリンクを付加
-2009.02.08:レイアウトを修正
**コメント [#p54f6e9d]
//#comment_nospam
終了行:
*はじめに [#gfe54b26]
本文はGuido van Rossumの"What's New In Python 3.0"( htt...
#contents
*[[What's New In Python 3.0:http://docs.python.org/3.0/wh...
-Python 3.0 の新機能
-著者:Guido van Rossum
-日付:2009年1月4日
この記事は、Python 2.6と比較したPython 3.0の新機能につ...
この記事では、すべての新機能の完全な仕様を説明するつも...
(訳注:
PEP = Python Enhancement Proposal( http://www.python.org/...
Pythonの仕様変更の提案及び進行状況の報告の場。Pythonista...
時間的制約のため、この文書は(かくあるべきとされるほど...
*多くの人がぶつかる障害 [#bc2ef528]
このセクションでは、Python 2.5を使用しているほとんどの...
**『print』は関数に [#gf4255fc]
古いprint文の特殊な文法は廃止され、print関数(とキーワ...
||COLOR(gray):旧:|COLOR(gray):print "The answer is" , 2 ...
|~|新:|print ( "The answer is" , 2 * 2 )|
||COLOR(gray):旧:|COLOR(gray):print x , # 末尾のコンマが...
|~|新:|print ( x , end = " " ) # 改行の代わりにスペース...
||COLOR(gray):旧:|COLOR(gray):print # 改行を出力|
|~|新:|print() # 『print関数』を呼び出す必要があります|
||COLOR(gray):旧:|COLOR(gray):print >> sys.stderr , "fat...
|~|新:|print("fatal error", file = sys.stderr)|
||COLOR(gray):旧:|COLOR(gray):print(x , y) # repr( (x, y...
|~|新:|print ( ( x , y ) ) # print(x, y)とは別!|
アイテムとアイテムの間のセパレータをカスタマイズすること...
例えば……
> print("There are <", 2 ** 32, "> possibilities!", sep =...
<は、
> There are <4294967296> possibilities!
<を生成します。
注記:
-print関数は、古いprint文の『softspace』をサポートしてい...
は『print("A¥n", "B")』は『"A¥n B¥n"』を出力します。
-最初あなたは、インタラクティブモードで何度も『print x』...
-2→3コード変換ツールを使うと、全print文が自動的にprint...
(訳注:
『2→3コード変換ツール』[原文:2to3 source-to-source conv...
Python 2.xのソースコードをPython 3.0準拠に変換してくれ...
**リスト(list)の代りのビュー(view)とイテレータ(iterator) ...
いくつかのよく知られているAPIは、もはやリストを返しません。
-辞書(dict)のメソッドのdict.keys, dict.items, dict.values...
-また、dict.iterkeysメソッドとdict.iteritemsメソッドとdic...
-map関数とfilter関数は、イテレータ(iterator)を返します。...
-range関数は、任意のサイズの値で動作する以外は、xrange関...
-zip関数はイテレータを返します。
訳注: 3.0以降 map は生成したリストではなくジェネレーター...
いわゆる void コンテキストでの map の呼び出しではmap の引...
**順序の比較 [#ue1f6102]
Python 3.0では順序の比較のルールを簡略化しています。
-順序比較演算子(<, <=, >=, >)は、比較するものに意味のある...
-sorted組み込み関数とlist.sortメソッドは、もはや『cmp』を...
-cmp関数は無くなったものとみなしましょう。そして__cmp__特...
(訳注:True - False ⇒ 1, False - True ⇒ -1)
**整数 [#me2290b2]
-[[[PEP 0237]:http://www.python.org/dev/peps/pep-0237/]] ...
-[[[PEP 0238]:http://www.python.org/dev/peps/pep-0238/]] ...
-sys.maxint定数は削除され、もはや整数値に上限はありません...
-『ロング整数』のreprでは、後ろに'L'をつけません。従って...
(訳注:reprはrepr関数での出力を意味するとともに、オブジ...
-八進法のリテラルは、『0720』ではなく『0o720』と書きます。
**『Unicode 対 8ビット』の代わりに『テキスト 対 データ』...
バイナリデータとUnicodeについて、あなたが知っている全て...
-Python 3.0では、『テキストと(バイナリ)データ』の概念を...
-この設計思想の変更の結果、ほぼ全てのUnicode、エンコーデ...
エンコードされていない全てのテキストで『unicode』型を使い...
-あなたはもはや、 Unicodeテキストには『u"..."』リテラルを...
-str型とbytes型が混同不可能なため、いつでも明示的に相互に...
> bytes(s, encoding=...)
<や
> str(b, encoding=...)
<を使うこともできます。
-str型と同様に、bytes型も不変型です。バッファされたバイナ...
-raw文字列リテラル内のすべてのバックスラッシュは、文字通...
-組み込みのbasestring抽象型は削除されました。かわりにstr...
-ファイルをテキストファイルとして開く(open関数のデフォル...
-ファイル名はAPIから(Unicode)文字列として通って、返されま...
-システムによって使用可能にされたバイト列が、デフォルトの...
-[[[PEP 3138]:http://www.python.org/dev/peps/pep-3138/]] ...
-[[[PEP 3120]:http://www.python.org/dev/peps/pep-3120/]] ...
-[[[PEP 3131]:http://www.python.org/dev/peps/pep-3131/]] ...
-StringIOとcStringIOモジュールはなくなりました。代わりに...
-詳しくは、Python 3.0で更新された『the Unicode HOWTO』を...
*構文の変更点の概要 [#v1b4f455]
このセクションではPython 3.0のすべての構文の変化の概要を...
**新しい構文 [#uf70e732]
-[[[PEP 3107]:http://www.python.org/dev/peps/pep-3107/]] ...
-[[[PEP 3102]:http://www.python.org/dev/peps/pep-3102/]] ...
-キーワード引数が、クラス定義の基底クラスのリストの後に使...
-[[[PEP 3104]:http://www.python.org/dev/peps/pep-3104/]] ...
-[[[PEP 3132]:http://www.python.org/dev/peps/pep-3132/]] ...
> (a, *rest, b) = range(5)
<この書式では、aに0を、bには4を、そしてrestに [1, 2, 3] ...
-辞書の内包表記『{k: v for k, v in stuff}』は、『dict(stu...
(訳注:stuffは『要素』なので、
> ( (1,100),(2,200) )
<のようなkey-value対応のモノを想定している。しかし、たと...
> x = dict(d)
<は通っても
> x = {k: v for k, v in d}
<は通らない。この場合、
> x = {k: v for k, v in d.items()}
<とする必要がある)
-{1, 2}のような集合リテラル。注意:{}は空の辞書のリテラル...
例:
> {x for x in stuff}
<は
> set(stuff)
<と同等ですが、より柔軟です
-新しい8進数のリテラルは、『0o720』のように書きます(2.6...
-『0b1010』のような新しい二進法リテラル、(2.6でも既に使...
-byte列のリテラルは'b'か'B'を先頭につけます。そして新しい...
**変更された構文 [#t6780755]
-[[[PEP 3109]:http://www.python.org/dev/peps/pep-3109/]]...
-『as』と『with』が新しく予約語になりました(実際は2.6か...
-『except exec, var』が『except exc as var』という書きか...
-[[[PEP 3115]:http://www.python.org/dev/peps/pep-3115/]] ...
>>> class C:
... __metaclass__ = M
...
の代りに、
>>> class C (metaclass = M):
... ...
を使って下さい。モジュール全体で使える__metaclass__変数は...
-リスト内包記法はもはや
> [... for var in item1 , item2 , ...]
<という書きかたをサポートしていません。代わりに
> [... for var in ( item1 , item2 , ...)]
<を使用してください。また、リストの内包表現は別の意味を持...
(訳注:2.xに於けるリストの内包記法で用いられる変数(例え...
《Python 2.x》
>>> x = 100
>>> [x for x in range(10)] # リストの内包記法
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
9 ←変数xの内容が変更されている
>>> x = 100
>>> (x for x in range(10)) # ジェネレータの内包記法
<generator object at 0x4031362c>
>>> x
100 ←変数xの内容が変更されていない
>>> list(x for x in range(10)) # ジェネレータの内包記法...
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
100 ←変数xの内容が変更されていない
しかし、Python 3.0ではリスト内包記法の変数もローカルと...
《Python 3.0》
>>> x = 100
>>> [x for x in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
100
>>>
)
-省略記号『...』(三連のピリオド)は、字句要素としてどこで...
**削除された構文 [#b22855e7]
-[[[PEP 3113]:http://www.python.org/dev/peps/pep-3113/]] ...
>>> def foo(a, (b, c)):
...
……という書きかたは、もはや使えません。代わりに
>>> def foo(a, b_c):
... b, c = b_c
などとして下さい
-バックティック(backticks)は削除されました(代わりにrepr...
-『<>』は削除されました。代わりに『!=』を使用してください
-予約語の削除。『exec』はもうすでにキーワード(予約語)では...
-整数リテラルでは、もはや末尾の'l'または'L'はサポートされ...
-文字列リテラルでは、もはや『u'...'』や『U'...'』はサポー...
-『from module import *』構文は、モジュールレベルのみ許可...
-相対importとして許されるのは、『from .[module] import na...
-旧スタイルのクラスはなくなりました。
*Python 2.6 において既に提示された変更 [#b51f70d6]
おそらく多くのユーザーはPython 2.5 から Python 3.0 へ直...
-[[[PEP 343]:http://www.python.org/dev/peps/pep-0343/]] w...
-[[[PEP 366]:http://www.python.org/dev/peps/pep-0366/]] ...
-[[[PEP 370]:http://www.python.org/dev/peps/pep-0370/]] ...
-[[[PEP 371]:http://www.python.org/dev/peps/pep-0371/]] ...
-[[[PEP 3101]:http://www.python.org/dev/peps/pep-3101/]] ...
-[[[PEP 3105]:http://www.python.org/dev/peps/pep-3105/]] ...
-[[[PEP 3110]:http://www.python.org/dev/peps/pep-3110/]] ...
-[[[PEP 3112]:http://www.python.org/dev/peps/pep-3112/]] ...
-[[[PEP 3116]:http://www.python.org/dev/peps/pep-3116/]] ...
-[[[PEP 3118]:http://www.python.org/dev/peps/pep-3118/]] ...
-[[[PEP 3119]:http://www.python.org/dev/peps/pep-3119/]] ...
-[[[PEP 3127]:http://www.python.org/dev/peps/pep-3127/]] ...
-[[[PEP 3129]:http://www.python.org/dev/peps/pep-3129/]] ...
-[[[PEP 3141]:http://www.python.org/dev/peps/pep-3141/]] ...
*ライブラリの変更 [#m9eebcd7]
時間の制約のため、この文書は標準のライブラリの、あまり...
-多くの古いモジュールが削除されました。 (たとえば)いく...
-bsddb3パッケージは、コアの標準ライブラリの中のその存在が...
-あるモジュール群は改称されました。なぜなら古い名前は[[PE...
|旧名称|⇒|新名称|
|_winreg|⇒|winreg|
|ConfigParser|⇒|configparser|
|copy_reg|⇒|copyreg|
|Queue|⇒|queue|
|SocketServer|⇒|socketserver|
|markupbase|⇒|_markupbase|
|repr|⇒|reprlib|
|test.test_support|⇒|test.support|
-Pythonの2.xのモジュールに共通のパターンは、例えばpickle...
-幾つかの関連するモジュール群はパッケージにまとめられてい...
結果として新しいパッケージは:
-dbm (anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb).
-html (HTMLParser, htmlentitydefs).
-http (httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTP...
-tkinter (turtleモジュールを除く全てのTkinter関連のモジュ...
-urllib (urllib, urllib2, urlparse, robotparse).
-xmlrpc (xmlrpclib, DocXMLRPCServer, SimpleXMLRPCServer).
[[PEP 3108:http://www.python.org/dev/peps/pep-3108/]]でカ...
-setsモジュールを抹消します。組み込みのset関数を使用して...
-sysモジュールの整理: sys.exitfunc関数、sys.exc_clear関数...
-array.array型の整理: readメソッドとwriteメソッドはなくな...
-operatorモジュールの整理: sequenceIncludes関数とisCallab...
-threadモジュールの整理: acquire_lock関数とrelease_lock関...
-randomモジュールの整理: jumpahead関数とそのAPIが削除され...
-newモジュールがなくなりました。
-tempfileモジュールのために、os.tmpnam関数、os.tempnam関...
-tokenizeモジュールがbytesに対して働くように変更されまし...
-string.lettersとその仲間(string.lowercaseとstring.upperc...
-__builtin__モジュールがbuiltinsに改称されました(アンダー...
*PEP 3101: 文字列書式設定の新しいアプローチ [#p70aeebc]
-『%』による文字列書式の操作に代わって、新しい組み込み文...
*例外処理の変更 [#j655fa71]
例外の発生や捕捉についてのAPIは整理されました。そして新...
-[[[PEP 0352]:http://www.python.org/dev/peps/pep-0352/]] ...
-ほぼすべての例外は、実質的にはExceptionから派生します。 ...
-StandardErrorは削除されました(2.6に於いて既に)
-Exceptionsは、もはやシーケンスとして動作していません。そ...
-[[[PEP 3109]:http://www.python.org/dev/peps/pep-3109/]] ...
-[[[PEP 3110]:http://www.python.org/dev/peps/pep-3110/]] ...
-[[[PEP 3134]:http://www.python.org/dev/peps/pep-3134/]] ...
> raise SecondaryException() from primary_exception
<(primary_exceptionはexceptionオブジェクトから生成された...
-[[[PEP 3134]:http://www.python.org/dev/peps/pep-3134/]] ...
-Windowsがで拡張モジュールのロードに失敗したときのメッセ...
*雑多なその他の変更 [#fffbcb1e]
**演算子や特殊メソッド [#cd5b41f0]
-『!=』は、『==』がNotImplementedを返さない限り、『==』の...
-『unbound methods(束縛されていないのメソッド)』というコ...
(訳注:
>>> class X:
... def ooo(self, other):
... print(self,other)
...
>>> X.ooo(1,2)
1 2
>>>
……というようなことが出来るようになった、という意味。以前...
-__getslice__メソッドと__setslice__メソッド、そして__dels...
-[[[PEP 3114]:http://www.python.org/dev/peps/pep-3114/]] ...
(訳注:そのかわりにイテレータオブジェクトの順送りには、n...
-特殊メソッド__oct__と__hex__が削除されました。oct関数とh...
-__members__と__methods__のサポートが打ち切られました。
-func_Xと名づけられていた関数の属性は、__X__というフォー...
-__nonzero__メソッドは、__bool__メソッドになりました。
**組み込み(関数,オブジェクト,型など) [#zb8fc6a6]
-[[[PEP 3135]:http://www.python.org/dev/peps/pep-3135/]] ...
-[[[PEP 3111]:http://www.python.org/dev/peps/pep-3111/]] ...
-新しい組み込み関数のnextは、オブジェクトの__next__メソッ...
-intern関数はsys.intern関数へ移動しました。
-apply関数は削除されました。『apply(f, args)』の代わりに...
-callable関数は削除されました。『callable(f)』の代わりに...
-coerce関数は削除されました。この関数は、もはや旧スタイル...
-execfile関数は削除されました。『execfile(fn)』の代わりに...
-file関数が削除されました。open関数を使用してください。
-reduce関数が削除されました。もし本当に必要なら、functool...
-reload関数は削除されました。imp.reload関数を使用してくだ...
-dict.has_keyメソッドは削除されました。in 演算子を使用し...
*ビルドとC言語へのAPIの変更 [#wb333e75]
時間の制約があるため、これでは、 C言語へのAPIの変更の、...
-Mac OS 9やBeOSやRISCOSやIrix、そしてTru64を含め、そして...
-[[[PEP 3118]:http://www.python.org/dev/peps/pep-3118/]] ...
-[[[PEP 3121]:http://www.python.org/dev/peps/pep-3121/]] ...
-[[[PEP 3123]:http://www.python.org/dev/peps/pep-3123/]] ...
-実行を制御するためのC APIは、もうサポートされていません。
-CのAPIのPyNumber_Coerce、PyNumber_CoerceEx、PyMember_Ge...
-新しいCのAPIのPyImport_ImportModuleNoBlockは、PyImport_...
-Cレベルのスロットとメソッドのブール変換の改称:nb_nonzer...
-METH_OLDARGSとWITH_CYCLE_GCがCのAPIから削除されました。
*パフォーマンス [#t344b066]
3.0の一般化の正味の結果は、pystoneベンチマークでPython3...
*Python 3.0への移植 [#g78fd356]
既存のPython 2.5または2.6のソースコードをPython 3.0に移...
0. (前提条件)優れたテスト適用から開始します。
1. Python 2.6へ移植。このステップは、Python 2.x からPytho...
2. (まだ2.6を使用して)-3コマンドラインスイッチを(ひねっ...
3. 2→3コード変換ツールをソースコードツリーに対して走ら...
Python2.6と3.0両方の下で不変になるソースコードを書き込...
C拡張のPython3.0への移植のためには、どうぞ『Porting Exten...
RIGHT:'''訳出 機械伯爵(in TSNET)'''
*翻訳についてのおことわり&aname(okoto); [#o239a6e6]
この文を訳出するに当たって、以下のルールを適用しました
-固有のモジュール名やオブジェクト名、あるいは日本語訳を行...
-xxx()の形式となっているものは、便宜上全て「〜関数」と訳...
-文中の書式/記法などについては、原文中の表現に関係なく『...
-文中の表現では内容が不鮮明と思われる箇所は、訳注として適...
*謝辞 [#t622b62c]
-本文を訳出するに当たって、TSNETのBruce.さん、Fe2+さんに...
*関連ページ [#ubd5b16c]
-[[Python 3.x>Python3000]]
-[[Python一般について>Python]]
-[[ここがヘンだよPythonista]]
*リンク [#l8533a94]
-[[(原文)What's New In Python 3.0 (final version):http://...
*コメント、修正記録など [#od96f92e]
Wikiの強み、ということで、訂正箇所があれば「自由に訂正」...
**履歴 [#m81ef0c1]
-2009.01.17:アップ
-2009.01.24:予約語に関する訳注を一部削除
-2009.01.26:PEPにリンクを付加
-2009.02.08:レイアウトを修正
**コメント [#p54f6e9d]
//#comment_nospam
ページ名: