How to make a method ONLY accessible by other methods of same class and not outer world [in python]?
我有一个类定义,其中定义了两个方法。布局如下:
1 2 3 4 5 6 7
| class Sample:
def calling-Method(self):
print"Hi"
calledMethod()
def called-Method(self):
print"How are you" |
我要的是不应该从班外打电话给called-Mehtod(self)。不应出现以下情况:
1 2 3
| if __name__ =="__main__":
obj = Sample()
obj.called-Method() #This should not allowed. |
我研究发现,python并不是为了隐私。另一种选择是使用双下划线("uuuuu"),但这不是为了隐私。
在上述场景中,是否有任何方法可以显示隐私?非常感谢您的帮助。
- Check out this similar query:stackoverflow.com/questions/1547145/…
- 从呼叫者那里没有办法隐藏方法。你为什么需要这样的东西?文件不应被称为课外教学。主要的__是大量的文件。还请避开Dash在方法上的名称,使用一个理解,EDOCX1&2〕和calling_method。
- 不可能
- @Msvalkon-It's nothing like"hiding"something from caller.我只是想了解Python的OOP实施概念,你是对的,我会使用B/W方法的名称。
- 可能给你的新闻:私人方法没有什么要做的。信息隐藏并不意味着要防止人们在物体内寻找。它简单地意味着提供了一种方法,在减少对执行工作的依赖的同时,不需要这样做。作为私人文件的标准格式是简单地给它一个名字,以一个理解开始。
- @V1H5查看我的答案中的链接。这是一个解读Python的概念。
- @Sshashank124-I read that question and answers related to it.这个简单的运输,不管什么,私人的部分只是一个幻觉在Python?
- 是的
- 我意识到了这个问题。然而,你仍然可以找到这个用户名(即使不确定):Gist.github.com/therealprologic/4D05da7480B11CCD57A1--我投票将这个问题作为我的问题的直接答案。
- 我真的很欣赏这个。谢谢你我现在正看着呢。注:
- @Jamesmills:这不是一个真正的解决办法。It will not work in methods that doesn't have self(as classic methods or methods that choose other name selfsomething else),and i t will not work(I.E.,will allow access)in any function if that function just defines a variable called selfpointing to the instan另一句话,它隐藏得太多,而且还不够。
- @Brenbarn-I don't have in-depth knowledge of python as I'm new to i t,but don't you think James's so"something i s better than nothing".不幸的是,我感觉像Python应该提供像詹姆斯那样的东西它正在解决我的问题,就像一个宝石。
- What's the problem you're trying to solve with this technical?
- 我想我已经说过我的问题了。我想要一种方法,该方法只应从同一类的另一种方法来称呼,但该方法不应从同一类的方法之外获得。
- @V1H5我会更新我的解决方案,当我从每次布伦巴上班的时候,它变得更加坚强。
- @V1H5:The thing is,that's not a problem,it's a solution(or an attempt at one).你为什么要这么做你觉得你需要这样的方法?
- yes@jamesmills,you put it as answer.我想告诉你。
正如您从其他OO语言所知道的那样,python不支持访问限制。请参阅此处获取更详细的解释。
- 最好还是把这作为评论而不是回答。好吧,谢谢你的链接。:)