2016-11-23 2 views
2

インポートされたモジュールにアクセスできないようにする(つまり、コード補完オプションを詰まらせる)ことができますか?例えばインポート済みのモジュールがコード補完で表示されないようにしますか?

:私はtestmoduleをインポートすると

# testmodule.py 

import os 

def o_stuff(): 
    return 

、私はosは私がtestmodule.を入力するたびに表示したくありません。私は、testmodule内で宣言されている関数/クラスのみを必要とします - この場合、ただo_stuffです。

これを行うアスタリスク(つまり、from testmodule import *)に類似したものはありますか?

答えて

3

あなたはfrom module import *によってインポートされる名前のリストを含む特殊変数__all__を定義することができます - 例えば:私はに慣れていないんですけれども、コード補完と

# testmodule.py 

import os 

__all__ = ['o_stuff', 'more_stuff'] 

def o_stuff(): 
    pass 

def more_stuff(): 
    pass 

のIDEはまた、典型的には、(__all__を尊重しますVisual Studioなので、IntelliSenseがそうしているかどうかは分かりません)。

私は強く(それは気晴らしにあなたのコードを読む人を困らせるだろうという理由で)それに対してをお勧めしますが、完全を期すためにここに含ま代替は、アンダースコア接頭辞別名としてモジュールをインポートすることです

# ugly_as_sin.py 

import os as _os 

def o_stuff(): 
    return _os.name 

この場合も、from module import *の両方であり、通常、コード補完はアンダースコアの接頭辞付きの名前を無視します。

+0

D'oh、3秒で! – Carlos

2

あなたのモジュールで__all__を使用して、それが役立つかどうかを調べることができます。

import os 

__all__ = ['o_stuff'] 

def o_stuff(): 
    return 

Intellisenseには慣れていませんが、微調整のビットを使用することもできます。

関連する問題