pythonで__methods__非表示にする方法は?
-
13-09-2019 - |
質問
私は疑問に思い、特別な非表示にする方法
__.*__
Pythonで方法*?特に、私はタブ補完との対話的なPythonインタプリタを使用しています、と私は私のモジュールが公開するメソッドだけを表示したいと思います...
おかげで、
/ myyn /
*(Pythonシェルを使用するユーザから少なくとも)
<時間>これは次のようになります:
h[2] >>> Q.
Q.ALL( Q.__delattr__( Q.__getattribute__(
Q.__package__ Q.__sizeof__( Q.find_values(
Q.json
Q.DEFAULT_CONDITION( Q.__dict__ Q.__hash__(
Q.__reduce__( Q.__str__( Q.get_loops_total_platform(
Q.jsonlib
Q.SUCCESSFUL( Q.__doc__ Q.__init__(
Q.__reduce_ex__( Q.__subclasshook__( Q.get_platforms(
Q.memoize(
Q.__all__ Q.__file__ Q.__name__
Q.__repr__( Q.cached_open( Q.get_snippets(
Q.__class__( Q.__format__( Q.__new__(
Q.__setattr__( Q.find_results( Q.get_subjects(
h[2] >>> Q.
と私はそれはのように見えた希望ます:
h[2] >>> Q.
Q.ALL( Q.find_values( Q.json
Q.DEFAULT_CONDITION( Q.get_loops_total_platform(
Q.jsonlib Q.SUCCESSFUL( Q.get_platforms(
Q.memoize( Q.cached_open( Q.get_snippets(
Q.find_results( Q.get_subjects(
h[2] >>> Q.
解決
さて、あなたは、オーバーライドをrlcompleter.Completer
のサブクラスを作成することができます
問題の方法、およびreadline
にそれをインストールします。
import rlcompleter
import readline
class MyCompleter(rlcompleter.Completer):
def global_matches(self, text):
....
def attr_matches(self, text):
....
import readline
readline.set_completer(MyCompleter().complete)
これらのコードスニペットは、大文字と小文字を区別しないタブの完了を許可する
他のヒント
私はあなたがTabキーを押すと「プライベート」メソッドの表示を停止するために、特定の環境/インタプリタを得るための方法を探す必要だと思います。私は非常に奇妙なことでしょうパイソン自体からメソッドを、「非表示」にする方法はないと思います。
私はipythonに見てみましょう。たぶん、あなたは、あなたのアプリにサブプロセスなしipythonsにインタラクティブシェルをフックし、そこからプライベートメソッドのフィルタリングを適用することができます。
所属していません StackOverflow