Hello! 欢迎来到小浪资源网!


Python类属性中的下划线究竟有什么作用?


Python类属性中的下划线究竟有什么作用?

python 类属性中的下划线:隐而不露

在 Python 中,我们经常看到类属性前后带有一个或两个下划线,但它们到底有什么意义呢?

单下划线 (_A)

单下划线表示该属性是受保护的,即只有该类及其子类才能访问。然而,在实践中,单下划线实际上只是一种命名约定,它并没有强制访问限制。

立即学习Python免费学习笔记(深入)”;

双下划线 (__B)

双下划线则不同了。它除了具有保护属性的作用外,还引入了一种称为名称混淆的新特性。编译器会自动将属性名替换为一个以 _类__ 开头的名称。

以题中的例子为例,__B 属性会被编译器替换为 _A__B。虽然这种混淆看似增加了访问难度,但实际上你仍然可以在外部通过 _A__B 直接访问它。

因此,我们可以得出结论,Python 中虽然没有真正的属性可见性修饰符,但可以通过下划线来规定访问约定。单下划线表示受保护,双下划线表示隐式保护。

相关阅读