python的面向对象三大特性之封装

python的面向对象有三大特性,封装,继承,和多态,如果这三大特性用的好,在使用python的时候会有很大的帮助

封装

封装就是对对象成员进行访问的限制
封装的三个级别:

  • 公开,公共的 public
    公共的封装实际对成员没有任何操作,任何地方都可以访问
class Person():
	#age是共有的成员
	age = '20'
  • 受保护的,protected
    受保护的封装是将对象成员进行一定级别的封装,然后,在类中或者子类中都可以进行访问,但是在外部不可以
class perosn():
	_age = '20'
  • 私有的,private
    私有成员是最高级别的封装,只能在当前类或对象中访问,在成员名前加上两个下划线就成了私有成员。
class person():
    #__age就是私有成员
    __age = 18

在python中私有并不是真的私有,是一种name mangling的改名策略,可以使用对象._classname_attributename访问

print(Person.__dict__)          
#这样可以查看包括私有变量在内的所有变量
#可以发现,其实__age这个私有变量并不是隐藏了,而是改变了他的属性,改为了_Person__age
#然后发现通过_Person__age这个还是可以访问age的
print(p._Person__age)

你可能感兴趣的:(封装,python)