1. ホーム
  2. python

[解決済み] Pythonの__future__は何に使うのか、いつ、どのように使うのか、その仕組みについて

2022-03-17 08:43:47

質問

__future__ がPythonのモジュールに頻繁に登場します。私は __future__ を読んでも、何のために、どのように、どのような場合に使用するのかがわかりません。 Pythonの __future__ ドクター .

どなたか例を挙げて説明していただけませんか?

の基本的な使い方について、いくつかお答えします。 __future__ 受け取ったものは正しいようです。

しかし、もう1つ理解しなければならないことがあります。 __future__ が動作します。

私が最も混乱した概念は、現在のPythonのリリースが将来のリリースのための機能を含んでおり、将来のリリースの機能を使用するプログラムが現在のバージョンのPythonで正常にコンパイルできる方法です。

現在のリリースには、将来の潜在的な機能がパッケージされていると推測されます。しかし、その機能を利用するためには __future__ 現在の標準ではないため。私の考えが正しいかどうか教えてください。

解決方法は?

__future__ モジュールが含まれていれば、互換性のない変更や新しいキーワードを導入するような変更に徐々に慣れていくことができます。

例えば、コンテキスト・マネージャーを使うには、これまで from __future__ import with_statement は、2.5では with キーワードは新しいもので、これ以上変数名として使うべきではありません。そのため with をPythonのキーワードとして使用するには、Python 2.5以降では、上記からimportを使用する必要があります。

他の例としては

from __future__ import division
print 8/7  # prints 1.1428571428571428
print 8//7 # prints 1

がない場合は __future__ というものがあり、両方とも print ステートメントを使用すると、次のように表示されます。 1 .

内部的な違いは、そのインポートがない場合です。 / がマッピングされます。 __div__() メソッドで、一方では __truediv__() が使用されます。(いずれにせよ // が呼び出す __floordiv__() .)

参考 print : print は3.xでは関数になり、キーワードとしての特別な性質は失われます。つまり、逆なんですね。

>>> print

>>> from __future__ import print_function
>>> print
<built-in function print>
>>>