新機能について解説します。バグフィックスリリースです。「クリーンアップリリース」と考えることが出来ます。ジェネレータやイテレータのように、完全に書き直されたいくつかの機能があります。ほとんどのその変更は著しくて以前とはかけ離れたものとなりましたが、これは言語設計の不品行と暗黒面を綺麗に掃除することを目的としています。このドキュメントは個々の新機能の完全な詳細を提供するのではなくて、簡易な概要を提供することを目的にしています。ドキュメントを参照すべきです。モデルについてのものです。変更は後方互換であるはずなので、あなたのコードは変更なしで動きそうです。その変更は、いくつかの素晴らしい能力を発揮させます。この、本記事中において最も長くて複雑なセクションについて始める前に、変更の概要を提供し、いくつかの所感を提示しておこうと思います。設計の欠点を列挙するウェブページを書きました。型をサブクラス化出来ないことでした。組み込み型をサブクラス化できません。あなたは、そう、一つの便利メソッドを追加したくてリストをサブクラス化することも出来ないのです。インスタンスを受け付けないでしょう。これを修正し、また、その過程においていくつかの心躍る新機能を追加しました。簡単に要約します:あなたはリストのような組み込み型をサブクラス化出来ます。あなたのサブクラスは、元の型を要求している全ての場所で動作します。以前より使えたインスタンスメソッド加え、静的メソッド、クラスメソッドを今や定義出来ます。名付けられた新しい機構を使うと、インスタンスの属性への参照または設定時に自動的にメソッドを呼び出すようにも出来ます。使って書き換えることが出来、それはまたコードを単純にし、高速化もします。持てるようになりました。使って、インスタンスの適正な属性を特定の集合に制限できます。今よりも最適化される可能性があります。一部のユーザはこれら全ての変更に懸念を表明しました。出来なかった全ての芸当の役に立つさ、だけどさ、それって言語をより複雑にするよなぁ。単純さを保つことを提言してきました。彼らはその単純さが失われると感じたのです。個人的に私は、それらは心配には及ばない、と思っています。単純なクラスを書くことはかつてよりも難しいということはなく、実際にそれを必要としない限りは、秘伝をわざわざ学習することも教育することも必要ありません。出来て、私には何もかもが良い方向に思えます。この記事では全てのショーケースの品を陳列しようとはしませんし、将来の拡張のために必要な小さな変更は説明しません。代わりにこのセクションではおおまかなアウトラインを描きます。クラシック、あるいは旧スタイルクラス、と、新スタイルクラスです。旧スタイルクラスのモデルは、以前のバージョンのクラスモデルと完全に同じものです。このセクションに記述する全ての新機能は、全て新スタイルクラスだけに適用されるものです。最終的には旧スタイルクラスは撤廃されます。答えは、既存の新スタイルクラスをサブクラス化することです。組み込み型は今では新スタイルクラスです。object.)組み込み型(ビルトイン型)のための型オブジェクトは、クレバーなトリックを使って名付けられた組み込み(ビルトイン)として利用可能です。ような新しい型オブジェクトが追加されました。面白い例を挙げておきましょう。追加しているクラスが含まれていますが、このクラスは組み込み型のファイルオブジェクトを期待する内部関数に渡すことが出来ません。オブジェクトによってサポートされている属性とメソッドがなんなのかを見つけ出すための一貫した方法はありませんでした。名前のリストを公開するといった非公式な慣習は存在してはいましたが、拡張型やクラスの作者はわざわざそれらを定義しないということは、ままありました。フックを使っていたりすれば、これはなお不正確になりえました。正式なものにしてしまうことです。デスクリプタは属性の値を記述し、それがメソッドなのかフィールドなのかを伝えます。よって、静的メソッドとクラスメソッドが、より風変わりなコンストラクタとともに可能となりました。