【发布时间】:2014-08-20 10:52:06
【问题描述】:
我有一个类定义,其中定义了两个方法。 布局有点如下所示:
class Sample:
def calling-Method(self):
print "Hi"
calledMethod()
def called-Method(self):
print "How are you"
我希望called-Mehtod(self) 不应该从课堂外被调用。
以下不应该是可能的:
if __name__ == "__main__":
obj = Sample()
obj.called-Method() #This should not allowed.
我研究并发现 python 并不意味着隐私。 另一种方法是使用双下划线(“__”),但这不是为了隐私。
在上述情况下有什么方法可以展示隐私吗? 任何帮助都非常感谢..
【问题讨论】:
-
查看这个类似的查询:stackoverflow.com/questions/1547145/…
-
没有明智的方法向调用者隐藏方法。为什么你需要这样的东西?只需记录不应在课堂外调用
called-method。领先的__基本上是足够的文档。还要避免方法名称中的破折号,请使用下划线called_method和calling_method。 -
@msvalkon - 这与向呼叫者“隐藏”某些内容完全不同。我只是想了解 python 的 OOP 实现的概念 :) 是的,你是对的,我将使用下划线 b/w 方法名称。
-
对您来说可能是个新闻:私有方法与 OO 没有任何关系。信息隐藏并不意味着阻止人们查看对象内部。它只是意味着提供使这种不必要的方法,同时减少对实现的依赖。将方法记录为私有的标准方法是简单地给它一个以 one 下划线开头的名称。
-
@v1h5 查看我答案中的链接。里面有python的oop概念的解释。