2017-03-13 9 views
2

は++私が書くでしょう:C++の名前空間に相当するPythonは何ですか? Cで

namespace LowerLevel{ 
int DoStuff() {}; // 
} 

とアクセスそれ経由:

LowerLevel::DoStuff() 

私はPythonで、両方の方法をお教えください。

+2

あなたは、いくつかのオプションがあります。lower_levelインポートdo_stuffからパッケージ –

+3

を'それは' do_stuff'をインポートするモジュールの名前空間に入れます。あるいは、あなたはEVILを行い、 'lower_level import *'から 'NOT_REVEL'のすべてがインポートする名前空間にあります... –

答えて

5

最も近い精神は、モジュールを使用することです。

import lower_level 
lower_level.do_stuff() 

EDIT /歯先を:それは簡単な方法ですあなたが

def do_stuff(): 
    pass 

を持っているだろうし、その後、別の場所であなたがしたいファイルlower_level.py

。パッケージのようなものがあります。そこにはlower_levelというフォルダがあり、その中には__init__.pyというパッケージとしてlower_levelというパッケージがあります。そのパッケージの中には、.pyのファイルがモジュールになるか、特定のインポートと宣言を__init__.pyに入れます。しかしそれは空のままにすることもできます。パッケージはネストされた名前空間になると思います。

- prog.py 
\MyNameSpaceA 
    - __init__.py # just an empty file 
    - ObjA.py # A python Module 
    \SubPackageB 
     - __init__.py 
     - ObjB.py # another python module 
+0

そしてもちろん、そのテーマのバリエーションの束は、例えば、ありますが、 '忘れないでくださいモジュール、クラス、juanpa.arrivillaga @辞書など – Lagerbaer

+0

またはパッケージ(' __init __。py'!)を忘れないでください!モジュールが入ったフォルダ – Dan

+0

ネストされた名前空間はどのようにしたらいいですか? SpaceA :: SpaceB :: DoStuff()? –

関連する問題