深入研究 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中文网其他相关文章!