python变量前置单下划线,前置双下划线,前后双下划线
一.前置单下划线
变量前的单下划线表示表面上私有
但是其实这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
二.前置双下划线
前置双下划线表示一个私有属性。可以防止在外部被随意修改
如上图,__name是真正意义上的私有,在外部访问不到,那它是怎么实现这种访问不到的呢?是真的访问不到么?
我们可以通过__dict__来查看下convertstrtoint中有哪些属性。
注意:输出的属性中有一个‘_convertstrtoint__name’,原来,我们找不到这个方法的原因,当一个属性是私有属性时,类自动给它命名成名字前加上了类的名字,所以外部访问就会报错找不到‘__name’
3.前后双下划线
魔法属性:有特殊含义的属性。
例如上文出现过得’dict’,他可以列出对象或类中的所有属性,再例如__moudle__,class
还有很多,不意义列举了。