抜粋翻訳 PEP 236 Back to the __future__

PEP 236 Back to the __future__

動機

時が立つにつれて、Pythonは言語コアの構造の広く知られた意味づけに互換性のない変更を加えたり、思いがけない(実装依存の)振る舞いを何らかの形で変更したりする。こういう変更は気まぐれには行われず、常に長期的に見て言語を改善する目的で行われるのだが、しかし短期的には論争と混乱を呼ぶものである。

PEP 5, Guidelines for Language Evolution[1] は痛みを減らす方法を提案している。このPEPでは、それを実現するためのメカニズムを導入する。

意図

言語コア部分の構文や意味論に互換性のない変更を加える際は:

1. その変更が導入されるリリースCでは構文や意味論をデフォルトでは変更しない。

2. ある将来のリリースRを、そこでその構文や意味論が強制されるものとする。

3. PEP 3, Warning Framework[3] で説明されているメカニズムが、リリースRで意味を変えるであろう操作や構成について、可能な限りいつでも、警告を作成するのに使われる。

4. モジュールMの中のコードが現在のリリースCで新しい構文や意味論を使うことを要求するために、新しい future_statement (後述) を明示的にモジュールMに含めることが出来る。

つまり、古いコードは少なくとも一つのリリースでデフォルトで動き続け、しかし新しい警告メッセージを表示しはじめるようになる。新しい構文や意味論への移行はこの期間中に進めることができ、future_statementを使って、それを含むモジュールがすでに新しい構文と意味論が強制されたあとであるかのように振舞うようにできる。