【问题标题】:How to make a method ONLY accessible by other methods of same class and not outer world [in python]? [duplicate]如何使一个方法只能被同一类的其他方法访问,而不是外部世界[在 python 中]? [复制]
【发布时间】: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_methodcalling_method
  • @msvalkon - 这与向呼叫者“隐藏”某些内容完全不同。我只是想了解 python 的 OOP 实现的概念 :) 是的,你是对的,我将使用下划线 b/w 方法名称。
  • 对您来说可能是个新闻:私有方法与 OO 没有任何关系。信息隐藏并不意味着阻止人们查看对象内部。它只是意味着提供使这种不必要的方法,同时减少对实现的依赖。将方法记录为私有的标准方法是简单地给它一个以 one 下划线开头的名称。
  • @v1h5 查看我答案中的链接。里面有python的oop概念的解释。

标签: python oop


【解决方案1】:

Python 不支持访问限制,正如您在其他 oo 语言中所知道的那样。有关详细说明,请参阅here

【讨论】:

  • 将其保留为评论而不是答案会更好。嗯,谢谢你的链接。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 2011-05-15
相关资源
最近更新 更多