Python的面向对象3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的面向对象3相关的知识,希望对你有一定的参考价值。

  接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法!

  1.定义实例方法

  一个实例的私有属性就是以__开头的属性,无法被外部访问,但是,从类的内部是可以访问的,除了可以定义实例的属性,还可以定义实例的方法。

  其实,实例的方法就是在类中定义函数,它的第一个参数永远是self,指向调用该方法的实例本身,其他参数和普通参数一致。

  技术分享

  get_name()就是一个实例方法,它的第一个参数是self,这个参数不需要显示传入

  调用实例方法必须在实例上调用。

  在实例方法内部可以访问所有实例属性,这样的话,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装下形式能保护内部数据一致性,还可以简化外部调用的  难度。即通过方法来访问属性,可以避免对属性的修改。

 

  2.方法其实也是属性

  我们在class中定义的实例方法也是属性,它实际上是一个函数对象:

  技术分享

  即,p1.get_grade返回的是一个函数对象,但这个函数是绑定到实例的函数,p1.get_grade()才是方法的调用。

  因为方法也是一个属性,所以,它也可以动态地添加到实例中,只是需要用types.MethodType()方法把一个函数变为一个方法,

  技术分享

   在这里让函数和实例进行绑定。

以上是关于Python的面向对象3的主要内容,如果未能解决你的问题,请参考以下文章

python 面向对象整理 --------3.面向对象进阶--类的特殊成员

python博客是必须写的-3 面向对象

三. python面向对象

Python之初始面向对象(3--5)

python 3.x 学习笔记9 (面向对象)

python面向对象