2013-01-04 50 views
1

我理解它是如何工作的,我理解语法的含义。但我不明白我为什么要使用它?为什么我需要现实生活中的私人方法?

+5

我不认为这是一个适当的问题堆栈溢出。大量关于面向对象设计的信息以及在线提供的私人与公众的好处。 – Pete

+1

任何时候当有人问你的名字时,你是否交出你的钱包和身份证?如果有人问:“你有一美元我可以借?”你给他们你的帐户和个人识别码,以便他们看起来? – asawyer

+6

你不明白Python中私有方法的语法,因为没有任何方法。 – geoffspear

回答

5

Python中没有私有成员,包括方法。双下划线前缀实际上只是私人成员的“约定”,由于名称被进一步损坏,因此额外由Python强制执行。尽管从外部访问这些方法并不是不可能的。

一般而言,没有真正的需要让会员真的是“私人”的。通常,单个下划线前缀用于将成员标记为“内部”,并且要求这些类型的用户保持独立。

除此之外,当然还有私有(或内部)方法的原因是将功能的公共部分提取到方法中,因此您不必重复自己。

有关缺少Python成员私有性的更多信息,请参阅this question

+0

而且,当然,要告诉用户你的模块“不要自己调用这个方法,如果你这样做,当它在下一个版本中消失时不要责怪我,并且不会有任何警告” – geoffspear

0

sLet说,你有操作运行a是在同一类调用subOperationAsuboperationB,以及这些方法没有任何意义的单兵作战,他们操纵数据,你必须阻止他们的意外处决(这意味着从方法操作A)调用。所以私人允许您保护和封装您的方法,限制他们的可见性只限于所需的范围。

相关问题