Python高级编程-私有化
前面我们花费了十四讲,把Python的基础全部学习完毕,可是,我们还是不知道Python到底可以用来干嘛,从今天开始,我们将要学习Python高级编程,那么,我们就从私有化开始讲起吧(相信我,今天的东西很简单)!!!继续加油哦。。
什么是私有化,在基础教程中我们已经讲过了,其实就是变量前后的那几个下划线,比如:
__var = 1
之类的,我们就可以称之为私有化。
我们可以对一个变量私有化,但是,我们还讲了,私有化之后不能继承,不能被导入,先来一个例子大家回顾一下吧:
在上面的代码里,B 类继承 A 类,所以两个属性都应该继承了,因为我们传参时没有报错,所以参数是传递了进去,但是当我们访问时,却出现了问题,下面提示:
AttributeError: 'B' object has no attribute '__age'
即:没有这个属性
但是,我们还可以看到,上面我们传递进去的 name 的值是被成功的打印出来了,说明实例化对象时有 __age 这个属性,否则报错应该是参数过多才对。
那么,我们怎么访问到这个被我们加了“权限”的属性: __age 呢。
这里就用到了我们的私有化!!!!!
假设我们有一个方法,可以返回这个 __age 里面的值,那么直接调用这个方法是不是就可以了?
这里,我们定义了一个方法,叫做 getage ,定义在 A 类中,是一个普通的方法,可以被继承,然后我们使用 类B 继承类A ,实例化一个对象 b ,调用这个方法,成功拿到了我们设置的私有属性。
上面是得到这个值,是没问题,但是如何修改这个值呢,按照现在看来,这个属性虽然可以读取,但是它是只读的。
我们可以模仿上面的思想,既然我们可以定义一个普通的方法去读取,为什么不能定义一个普通的方法去修改呢?
就类似于,get 以及 set 一样,let's do it!
我深刻的知道,来看我的文章的读者都是很聪明的人,相信大家一看就明白这是怎么回事了,我们只是模仿 getage() 方法,做了一个 setage() 的方法。
以上就是 Python编程-私有化 的内容,今天就到这里吧。
祝大家新年快乐,天天开心!!
^_^
喜欢我,就给我一个“好看”
领取专属 10元无门槛券
私享最新 技术干货