python的私有化机制是伪私有,何出此言?
写下代码
class Person:
__x = 10
pass
print(Person._Person__x)
运行结果为
10
看见没有?理论上双下划线开头的变量__x是私有而不能访问的,但python对于私有机制的处理是这样的:将__x进行重命名为_Person__x,即在之前加上单下划线与类名称,以此达到不能通过__x访问的目的。
如果刻意要通过程序中的方式进行访问,依然是可行的
python的私有化机制是伪私有,何出此言?
写下代码
class Person:
__x = 10
pass
print(Person._Person__x)
运行结果为
10
看见没有?理论上双下划线开头的变量__x是私有而不能访问的,但python对于私有机制的处理是这样的:将__x进行重命名为_Person__x,即在之前加上单下划线与类名称,以此达到不能通过__x访问的目的。
如果刻意要通过程序中的方式进行访问,依然是可行的