Python 的“私有”类变量:文化规范
Python 的类结构与 Java 的不同之处在于它不强制声明实例构造函数中的变量。相反,实例变量可以在构造函数中初始化或稍后分配。这种灵活性提出了一个问题:Python 是否缺少私有变量的概念?
问题:为什么没有私有访问修饰符?
在 Java 中,public、private 和protected 访问修饰符保护对类变量的访问。然而,在 Python 中,不存在这样的访问修饰符。 Bruce Eckel 的 Python 模式手册说明了实例变量只是在构造函数中分配,留下了如何对敏感数据强制封装的问题。
答案:文化约定和 __ 前缀
Python 遵循一种文化规范,不鼓励直接修改其他类的实例或类变量。与 Java 不同,Python 鼓励程序员尊重其他类的隐私。虽然技术上可以通过直接编辑类源代码来修改私有 Java 变量,但强烈建议不要这样做。
对于那些希望在 Python 中模拟私有变量的人,可以使用 __ 前缀约定。此前缀会自动破坏变量名称,使它们在名称空间之外不那么可见。但是,需要注意的是,这并不是万无一失的安全措施,必要时可以绕过。
其他命名约定
超越 _ 前缀,Python 还鼓励对应在类或模块内部使用的变量使用 前缀。虽然这些变量在技术上可以从其范围之外访问,但最好不要修改它们。
以上是Python 缺乏真正的私有变量吗?的详细内容。更多信息请关注PHP中文网其他相关文章!