我理解它是如何工作的,我理解语法的含义。但我不明白我为什么要使用它?为什么我需要现实生活中的私人方法?
1
A
回答
5
Python中没有私有成员,包括方法。双下划线前缀实际上只是私人成员的“约定”,由于名称被进一步损坏,因此额外由Python强制执行。尽管从外部访问这些方法并不是不可能的。
一般而言,没有真正的需要让会员真的是“私人”的。通常,单个下划线前缀用于将成员标记为“内部”,并且要求这些类型的用户保持独立。
除此之外,当然还有私有(或内部)方法的原因是将功能的公共部分提取到方法中,因此您不必重复自己。
有关缺少Python成员私有性的更多信息,请参阅this question。
+0
而且,当然,要告诉用户你的模块“不要自己调用这个方法,如果你这样做,当它在下一个版本中消失时不要责怪我,并且不会有任何警告” – geoffspear
0
sLet说,你有操作运行a是在同一类调用subOperationA和suboperationB,以及这些方法没有任何意义的单兵作战,他们操纵数据,你必须阻止他们的意外处决(这意味着从方法操作A)调用。所以私人允许您保护和封装您的方法,限制他们的可见性只限于所需的范围。
相关问题
- 1. 为什么我需要一个需要实例的方法?
- 2. 为什么我需要我需要在子类中实现IDisposable()
- 3. 为什么我们需要一个私人构造函数?
- 4. 为什么@autowired在spring中不需要私有实例变量的setter方法?
- 5. 为什么要为我的对象实现toString方法?
- 6. 为什么我们需要addRequestHeader方法?
- 7. 为什么我们需要ContinueWith方法?
- 8. 为什么我们需要Buffer.isBuffer方法?
- 9. 实现接口的抽象类不需要方法实现。为什么?
- 10. 为什么我们需要在android中扩展类时实现某些方法?
- 11. 我需要在R中为类矩阵类实现什么方法?
- 12. java @SafeVarargs为什么私有方法需要是最终的
- 13. 为什么Resharper想要骆驼案也是私人方法?
- 14. 增强现实 - 我需要什么?
- 15. 为什么我不能有一个私人的抽象方法?
- 16. 为什么要用最后的修改,当我们在方法类有私人
- 17. 为什么要在实体中使用私人设置器
- 18. 为什么我们需要在ImagePickerController中实现UiNavigationcontroller委托iphone
- 19. 为什么我们需要java中的私有嵌套接口?
- 20. 为什么eclipse需要一个名为'main'的实际方法?
- 21. 派生类何时需要实现一个方法为const?
- 22. 为什么我们需要YII中的规则方法?
- 23. Composer.json需要我自己的私人包
- 24. 为什么我们要实现接口?
- 25. 为什么我们需要DTD和其他地方的“实体”
- 26. 为什么spinner listener需要onNothingSelected方法?
- 27. 为什么CustomFieldSerializer需要静态方法?
- 28. 为什么需要DataBind()方法?
- 29. 为什么申请方法需要parens?
- 30. 为什么需要使用'addChildViewController:'方法
我不认为这是一个适当的问题堆栈溢出。大量关于面向对象设计的信息以及在线提供的私人与公众的好处。 – Pete
任何时候当有人问你的名字时,你是否交出你的钱包和身份证?如果有人问:“你有一美元我可以借?”你给他们你的帐户和个人识别码,以便他们看起来? – asawyer
你不明白Python中私有方法的语法,因为没有任何方法。 – geoffspear