Python 类中隐私的本质
在 Java 中,访问修饰符的概念是控制类内变量可见性的基础。然而,Python 提供了一种不同的方法。
正如 Bruce Eckels 所观察到的,Python 没有正式声明实例变量。相反,构造函数中使用的变量是隐式创建的。这就提出了一个问题:为什么 Python 看起来不需要私有变量?
Java 的访问修饰符(public、private、protected)灌输了一定程度的封装性,限制了内部类变量向外部代码的暴露。然而,在 Python 中,这种显式声明变量可见性被认为是不必要的。
Python 哲学鼓励程序员的责任感。约定是不操作其他类的实例或类变量。虽然访问它们在技术上是可行的,但这违背了该语言公认的做法。
为了模拟私有变量的概念,Python 通过 __ 前缀提供了一种机制(根据 PEP 8)。这会为变量名添加前缀,从而有效地在类命名空间内对其进行修改,从而使其对外部代码不那么可见。然而,这种保护并不是万无一失的,因为有决心的用户仍然可以规避它。
此外,_ 前缀用于用于类或模块内部使用的变量。虽然从外部的访问在技术上不受限制,但这意味着它不应该被其范围之外的代码操纵。
以上是Python 如何在没有显式访问修饰符的情况下处理类中的隐私?的详细内容。更多信息请关注PHP中文网其他相关文章!