python的类和方法之成员的可见性

1.python中类的私有方法定义只需在方法名前加上双下划线,例如__student(self)

      若在类外面调用私有方法,则会如下报错:

python的类和方法之成员的可见性

python的类和方法之成员的可见性

2.方法名前后都存在双下划线的方法是公有方法,例如__init__(self)

3.但是,如果在类外调用公有方法的私有属性,会成功访问吗?如下:

python的类和方法之成员的可见性

python的类和方法之成员的可见性

在这里,在类外访问了私有变量__score,但是并没有报错而是可正常访问,通过python中对象的内置属性__dict__可以看到,python解释器自动将私有属性变成    _类名__属性名   这种形式了,所以才会正常访问,如下

python的类和方法之成员的可见性

python的类和方法之成员的可见性