我理解它是如何工作的,我理解语法的含义。但我不明白为什么要使用它?
答案 0 :(得分:5)
Python中没有私有成员,包括方法。双下划线前缀实际上只是私有成员的“约定”,由于名称被进一步破坏,它还被Python强制执行。但是,从外部访问这些方法并非不可能。
总的来说,没有必要让会员真正“私密”。通常,使用单个下划线前缀将成员标记为“内部”,并要求类型的用户单独使用它们。
除此之外,当然还有私有(或内部)方法的原因是将一些功能的公共部分提取到一个方法中,这样你就不必重复了。
有关缺少Python成员私密性的更多信息,请参阅this question。
答案 1 :(得分:0)
让我们说你在同一个类上有操作 operationA 来调用 subOperationA 和 suboperationB ,这些方法没有任何意义,因为单独的操作,他们操纵数据,你必须防止意外执行它们(这意味着从 operationA 以外的方法调用)。因此,私有允许您保护和封装您的方法,将其可见性仅限制在所需的范围内。