2011-08-28 6 views

答えて

24

いいえ、はいです。

official Python 2.7.2 grammarによれば、単語fromの唯一の出現は、import_fromという句にあります。 Python 3.1.3 grammar

raise_stmt: 'raise' [test ['from' test]] 

が表示された新しい句、そうそう。

12

Python 2.xでは、fromの唯一の使用はfrom x import y文です。しかし、Pythonの3.xのために、それは例えば、raiseの文と一緒に使用することができます。

try: 
    raise Exception("test") 
except Exception as e: 
    raise Exception("another exception") from e 
+0

これは正確には何ですか?元の例外は暗黙的に何らかの形で連鎖されていますか?それは私にとってPythonではないようです。明示的にそれをコンストラクタパラメータとして取る方がいいです...確かに何か他のことをしますか? –

+0

個人的に私はそれを使用したことがない - 私はそれが存在することを知っているだけで、別のものによって直接引き起こされた例外を発生させることを意図しています。 – rfw

3

次利用

from __future__ import some_feature 

は、import文と構文的に同じですが、代わりにインポートしますモジュールでは、some_featureの値に応じて、インタープリターの動作を何らかの方法で変更します。

たとえば、with文がPython 2.6まで言語に追加されていなくても、from __future__ import with_statementを使用すると、Pythonのwith文をPython 2.5で使用できます。ソースファイルの解析を変更するため、__future__のインポートは、ソースファイルの先頭に表示する必要があります。

詳細については、__future__ statement documentationを参照してください。

が可能__future__輸入及びそれらが利用可能なPythonのバージョンのリストについては__future__ module documentationを参照してください。

+1

別の質問の回答としてこれを投稿することを意味しましたか?これは接線的にしか関係していないようです... –

+0

実際には、 '__future__'モジュールからインポートします。 –

+2

@カール:いいえ、私はしませんでした。はい、 '__future__'はモジュールで、' __future__'からのインポートはimport文です。しかし、私の指摘は、将来からのインポートは他のインポートと構文的に同じですが、*セマンティクス*はバニラのインポートとは異なります。他のシンボル名をインポートするだけでなく、インタプリタの振る舞いを変更することも重要です。 –

関連する問題