__future__

(Python version: 2.7.10)

 

__future__ は実際にモジュールであり、次の3つの役割があります。

  • import 文を解析する既存のツールを混乱させることを避け、インポートしようとしているモジュールを見つけられるようにするため。
  • 2.1 以前のリリースで future 文 が実行された場合に、最低でもランタイム例外を投げるようにするため。 (__future__ のインポートは失敗します。なぜなら、 2.1 以前にはそういう名前のモジュールはなかったからです。)
  • 互換性のない変化がいつ言語に導入され、いつ言語の一部になる — あるいは、なった — のかを文書化するため。これは実行できる形式で書かれたドキュメントなので、 __future__ をインポートしてその中身を調べることでプログラムから調査することができます。


    upper level

     

    CO_FUTURE_ABSOLUTE_IMPORT
    CO_FUTURE_DIVISION
    CO_FUTURE_PRINT_FUNCTION
    CO_FUTURE_UNICODE_LITERALS
    CO_FUTURE_WITH_STATEMENT
    CO_GENERATOR_ALLOWED
    CO_NESTED

    _Feature
    __all__
    __builtins__
    __doc__
    __file__
    __name__
    __package__

    absolute_import
    all_feature_names

    division

    generators

    nested_scopes

    print_function

    unicode_literals

    with_statement’