これは、Pythonには名前空間があるようです。しかし、私が得ることができるのは、ネームスペースまたはスコープが何であるかを私に伝える人々です。だから、あなたはどのように名前空間をPythonで定義しますか?私が必要とするのは構文です(そして、その例がはるかに良いでしょう)。Pythonで名前空間を定義する方法は?
0
A
答えて
2
Pythonの "名前空間"は、特定の構文よりもディスク上のコードのレイアウトにより多く定義されています。ディレクトリ構造を考える:
my_code/
module_a/
__init__.py
a.py
b.py
module_b/
__init__.py
a.py
b.py
__init__.py
main.py
と各a.py
とb.py
ファイルは、機能が含まれていると仮定すると、fn()
、名前空間を解決するために、インポートの構文は(main.py
から)ので、同じように動作します:
from module_a.a import fn # fn() from module_a/a.py
from module_a.b import fn # fn() from module_a/b.py
from module_b.a import fn # fn() from module_b/a.py
from module_b.b import fn # fn() from module_b/b.py
fn()
はmain.py
の中にあり、インポートした実装を呼び出します。
それはfrom module import *
構文を使用することも可能ですが、これは、より具体的であることの賛成で推奨され:ここでは
from module_a.a import *
、fn()
はmain.py
内で使用可能であり、またmodule_a/a.py
で定義されている他のシンボル。
我々はmodule_b/b.py
からmodule_a/a.py
のfn()
ともfn()
の両方へのアクセス権を持っているしたい場合は、我々は2つのいずれかを行うことができます。私たちはfrom module import thing as something
の構文を使用し、次のいずれか
from module_a.a import fn as module_a_fn
from module_b.b import fn as module_b_fn
を、私たちの中でそれらを使用しますmodule_a_fn()
とmodule_b_fn()
などmain.py
、または私達はちょうど、モジュールをインポートし、そうmain.py
で、コード内で直接参照することができます
import module_a.a
import module_a.b
module_a.a.fn() # call fn() from module_a/a.py
module_a_b.fn() # call fn() from module_a/b.py
もう少し使い方を解明するのに役立ちたいと思います。
関連する問題
- 1. ASP.NETページ内で名前空間を定義する方法(インラインコードメソッド)?
- 2. XSL:名前空間のTNSを定義する方法
- 3. XML名前空間を定義する方法
- 4. 定義する方法を名前空間
- 5. 名前空間で定義されたクラスファイルの使用方法
- 6. Phalcon PHPマルチモジュール名前空間の定義
- 7. 名前空間のメンバー定義
- 8. 複数定義と名前空間
- 9. :未定義のCLR名前空間
- 10. 私のプロジェクトでxaml名前空間の定義を再利用する方法
- 11. C++名前(匿名)名前空間定義
- 12. Pythonでローカル名前空間を変更する方法
- 13. Pythonで名前空間をエミュレートする
- 14. 名前空間の名前を変更する方法は?
- 15. 名前空間をstdClassのインスタンスに設定する方法は?
- 16. Railsで正しく名前空間を設定する方法
- 17. どこで名前付きタプルクラスをPythonで定義すべきですか - どの名前空間ですか?
- 18. angular2グローバルファイルパス/名前空間を定義する
- 19. System.Collectionsは「システム名前空間の名前空間」ですか?
- 20. 名前空間 '<グローバル名前空間>'には既に 'ワークフロー'の定義が含まれています
- 21. Pythonで変数の名前空間を変更する方法は?
- 22. 定義済みの名前空間スキーマを持つsaxonを使用して名前空間ファイルを検証する方法はありますか?
- 23. 匿名名前空間と1つの定義ルール
- 24. 名前空間で変数を使用する方法は?
- 25. CSSで名前空間を使用する方法は?
- 26. JavaScriptで名前空間を文書化する方法は?
- 27. XPath 1.0で名前空間を無視する方法は?
- 28. JavaScriptでXML名前空間ノードを作成する方法は?
- 29. .NET SoapFormatterで名前空間を制御する方法は?
- 30. 未定義の名前空間の窓は、携帯電話7
可能な複製http://stackoverflow.com/questions/3913217/what-are-python-namespaces-all-about – nlsdfnbch
@ j4ckその質問に対する回答は既に私の質問に答えていますか? –
最初のもの。名前空間は、明示的に定義できるものではありません。コード化されたスコープによって与えられます。 – nlsdfnbch