__future__
__future__
Pythonモジュールで頻繁に登場します。読んでも何のためにあるのか、いつどのように使うのかわかりません。Pythonの__future__
ドキュメント。
誰か例を挙げて説明できますか?
__future__
の基本的な使用法に関して私が受け取ったいくつかの回答は正しいように思えました。
ただし、仕組みに関してもう 1 つ理解しておく必要があることがあります__future__
。
私にとって最もわかりにくい概念は、現在の Python リリースに将来のリリースの機能がどのように含まれているか、また将来のリリースの機能を使用するプログラムを現在のバージョンの Python で正常にコンパイルできるかどうかです。
現在のリリースには、将来的に使用できる潜在的な機能がパッケージ化されていると推測しています。ただし、これらの機能は__future__
現在の標準ではないため、使用することでのみ使用可能です。私の推測が正しいかどうか教えてください。
ベストアンサー1
モジュールを組み込むことで__future__
、互換性のない変更や新しいキーワードを導入するような変更に徐々に慣れることができます。
たとえば、コンテキスト マネージャーを使用する場合、キーワードは新しく、変数名として使用すべきではないfrom __future__ import with_statement
ため、2.5 ではこれを行う必要がありましたwith
。Python 2.5 以前で Python キーワードとして使用するにはwith
、上記のインポートを使用する必要があります。
もう一つの例は
from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1
この__future__
要素がなければ、どちらのprint
文も を出力します1
。
内部的な違いは、そのインポートがない場合、/
が メソッドにマッピングされる__div__()
のに対し、そのインポートがある場合、__truediv__()
が使用されることです。(いずれの場合も、//
は を呼び出します__floordiv__()
。)
Apropos print
: はprint
3.x では関数となり、キーワードとしての特別な特性を失います。つまり、逆になります。
>>> print
>>> from __future__ import print_function
>>> print
<built-in function print>
>>>