在python类中,有属性和方法,外部代码可以直接通过实例来访问修改。
如果需要让内部的属性不被外部访问到,在属性变量前面加上__2个下划线。...在python中,实例的变量名如果是由__2个下花钱开头的,就代表这是一个私有变量:只有内部可以访问,外部不许直接通过类或者实例访问。
代码:
?...虽然说外部访问不了一个内部私有属性,但是可以通过类中方法间接的访问、修改
类内部方法getname和setname:
?
双下划线开头的私有属性,是不是一定不能从外部访问呢?
其实不是的:
?...python中2个有趣的现象,外部变量遮蔽类中的变量。
从实例中访问类属性必须要谨慎。
和通常python变量一样,任何对实例属性的赋值都会创建一个实例属性(如果实例属性不存在的话),并且对其赋值。...但是,如果类属性中存在同名的属性,就是产生前面所说的有趣的副作用。
python3.x依旧存在这个情况。
下面上代码:
?
?
为什么下面的dict类型的就会del报错呢??