如何在python中隐藏方法?
我只是想知道,如何隐藏特殊如何在python中隐藏方法?,python,hide,magic-methods,facade,Python,Hide,Magic Methods,Facade,我只是想知道,如何隐藏特殊 __.*__ python*中的方法?特别是我正在使用一个带制表符完成的交互式python解释器,我只想显示我的模块公开的方法 谢谢 /myyn/ *(至少来自使用python shell的用户) 现在看起来是这样的: h[2] >>> Q. Q.ALL( Q.__delattr__( Q.__getattribute__( Q.__pack
__.*__
python*中的方法?特别是我正在使用一个带制表符完成的交互式python解释器,我只想显示我的模块公开的方法 谢谢 /myyn/ *(至少来自使用python shell的用户)
现在看起来是这样的:
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.
我认为您应该寻找一种方法,使特定的环境/解释器在按下TAB键时停止显示“private”方法。我不认为有一种方法可以对Python本身“隐藏”方法,那会很奇怪。我会研究一下ipython。也许你可以在没有子进程的情况下将ipythons interactive shell挂接到你的应用程序中,并从中应用私有方法过滤。好吧,你可以创建
rlcompleter.Completer的子类,override
方法,并将其安装到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)
这些代码段允许不区分大小写的制表符完成:
“交互式python解释器”??哪位口译员?无特殊要求;我正在从子进程ivoking一个shell;这很奇怪,我知道…谢谢;我尝试使用rlcompleter Complete(namespace=mynsdict),它应该可以工作。。