私はsource code for __future__.pyを見てきました。それは私には意味がありません - これは実際にどうやって分割の振る舞いを変えるのでしょうか?Pythonは "from __future__ import division"をどう扱うのですか?
3
A
答えて
4
このモジュールはドキュメンタリー/イントロスペクションの目的のみを提供します。その中のコードは実際にはありませんはです。むしろ
、Pythonはモジュールをコンパイルされ、それがfrom __future__ import
文をチェックするモジュール、上PyFuture_FromASTを呼び出し、PyFutureFeatures
対象に、彼らは有効だsets the appropriate flagsを想定しました。その後コンパイラはsets those flags in the compiler contextに進み、モジュールを実際にコンパイルします。
比較のために、あなたは、Python 3、__future__.py
でも同じであり、同じ情報のすべてが含まれていることがわかりますが、future.c
ですることができ、none of the features actually set any flagsこれらの機能のすべてはPython 3ではデフォルトで有効になっているので、
関連する問題
- 1. 'from __future__ import unicode_literals' in Django Mig
- 2. マスターインポートファイルで "from __future__ import unicode_literals"を使用できますか?
- 3. from past import print_statement
- 4. python: "from module import *"の場合?
- 5. from new import classobj in Python 3.1
- 6. plpythonのimport文はどのように扱われますか?
- 7. Python 3.5.2:from textblob import TextBlob:TypeError
- 8. Pythonの "import X"と "from module import X"の違いは?
- 9. 一般に、私のpythonコードで "from module import *"というステートメントを使うのは悪い習慣ですか?
- 10. Pythonでビッグアレイをどのように扱うのですか?
- 11. "import dateutil.parser"と "from dateutil.parser import parse"の違いは何ですか?
- 12. Python <3.6では、__future__からformatted_string_literalsをインポートするのはなぜですか?
- 13. Scrapy/Python - 欠けているデータをどう扱うのですか?
- 14. ZeroDivisionError:float division in Python
- 15. 再帰インポート: 'import'と 'from ... import ...'
- 16. import * as $ from "jQuery";
- 17. PythonでXMLを扱う
- 18. from reportlab.platypus import ListFlowable、ListItem not working
- 19. 同じソリューションで2つのプロジェクトをリンクするPython 'from ... import *'
- 20. import select2 scss from node_modules
- 21. シンボルをインポートした後、__future__からシンボルを削除/アンインストールするにはどうしたらいいですか?
- 22. "from-import" execモジュール全体ですか?
- 23. インポートエラー 'from six import raise_from'
- 24. Pythonはどのようにメモリを扱いますか?
- 25. MyBatisは空の結果セットをどう扱うのですか?
- 26. Androidは複数のR.javaをどう扱うのですか?
- 27. Pythonゲームでどのように補間を扱いますか?
- 28. モジュール内の__all__から `from ... import * 'api seperateをどのように定義するのですか?
- 29. なぜfrom ... importがPythonのインポート時に値にバインドするように見えるのですか?
- 30. PythonでJSON.Net JArrayを扱う?
マイ'compiler_flag'がコンパイラに分割を変更するように信号を送るかもしれないと推測します – Natecat
興味深いかもしれません。多分' import'が実際にどのように動作するのか分かりません。私はそれが問題のモジュールを評価したと思って、その後、モジュールオブジェクトを作成して、名前空間スコープに入れたり、個々のプロパティ( 'from xyz import abc')を持たせることができました。しかし '__future __。py'を見ると、モジュールが評価されたように見えますが、すべての機能を有効にする必要があります。どのように 'from __future__ import XYZ'チェリー - ' __future __。py'でオブジェクトの作成を選択しますか? –