揭开下划线:了解 Python 中的单下划线和双下划线
在 Python 中,标识符之前存在一两个前导下划线可以改变其在类或模块中的含义和可见性。
单个下划线:内部使用指示符
前导下划线表示属性或方法供当前类内部使用。然而,这只是一个约定;隐私不被强制执行。此外,模块函数中的单前导下划线表示它们不应由外部模块导入。
双下划线:名称篡改
两个前导下划线表示名称篡改。这些标识符在内部进行转换,并在前面添加了 ClassName,其中 ClassName 是删除了前导下划线的当前类名称。该机制允许定义类私有实例和类变量,并提供一些针对外部访问的保护。然而,值得注意的是,名称修改并不能保证绝对的隐私,因为有决心的个人仍然可以访问私有变量。
示例:
考虑以下类:
class MyClass(): def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
如示例输出所示,直接访问 __superprivate 会导致 AttributeError,而 _semiprivate 可以已访问。
__dict__ 属性揭示了 __superprivate 和 _semiprivate 均已损坏,确认名称修改机制。
以上是单下划线和双下划线如何影响 Python 中变量和方法的可见性?的详细内容。更多信息请关注PHP中文网其他相关文章!