首页 >后端开发 >Python教程 >Python 中单下划线和双下划线有什么区别?

Python 中单下划线和双下划线有什么区别?

Linda Hamilton
Linda Hamilton原创
2024-12-22 12:07:411020浏览

What's the Difference Between Single and Double Underscores in Python?

深入研究 Python 的单下划线和双下划线

Python 在对象名称之前使用前导下划线来传达特定的含义和行为。

单下划线:“内部使用”指示符

单个下划线表示属性或方法旨在在其自己的类中使用。这是阻止外部访问的约定,而不是强制规则。此外,当模块中的函数名称前面有一个下划线时,这意味着不应从模块外部导入它们。

双下划线:名称修饰

双下划线触发名称修改,这是一个过程,其中标识符以类名为前缀,并删除前导下划线。这是为“私有”类成员完成的,以避免与派生类或外部代码的成员发生冲突。但是,请务必注意,确定的用户仍然可以访问这些变量。

示例:

在以下示例中,__superprivate 旨在在类外部不可访问,而_semiprivate则遵循内部使用的约定:

class MyClass:
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"

在类外访问这些成员时,只有 _semiprivate 会被暴露:

mc = MyClass()
print(mc._semiprivate)  # "Hello"
print(mc.superprivate)  # Attribute error

因此,单下划线表示预期内部使用,而双下划线则保护成员不被名称修改直接访问,提供隐私层,但不是绝对安全。

以上是Python 中单下划线和双下划线有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn