码迷,mamicode.com
首页 > 编程语言 > 详细

Python面向对象编程高级特性

时间:2017-04-17 18:55:13      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:运行   语言   分享   没有   父类继承   att   子类   多个   多重继承   

***这里还是根据网上资料,主要是廖雪峰老师的教程学习的笔记,主要介绍python面向对象的高级特性,笔记不全,只是记录自己觉得容易出错的地方***

 

1.python作为一种动态语言,他的动态绑定机制允许在运行过程中动态的给class或者对象实例添加方法和属性,这个在静态语言中比如java是很难做到的;

  1)动态绑定属性:

    技术分享  

    技术分享

 

  2)动态绑定方法

    给一个实例绑定的方法对于其他实例和类都是不可见的:(这里也说明给一个实例动态绑定方法必须用MethodType(func, instance)

    技术分享

    但是给类绑定的方法对于所有的实例都是可见的

    技术分享

 

 2.__slots__ = (‘attribute1, attribute2‘) 为了限制对类的绑定属性名称,但是对于继承的子类不起作用:

    技术分享

    对于继承的子类没有限制作用:

    技术分享

 

     只要类里面有了 __slots__ = () 语句,就只能对类的对象绑定括号里面的属性和从父类继承的允许绑定的属性;(分为两种,父类有slots语句和分类没有slots语句):

    父类没有slots语句,子类虽然有限制,但是还是可以绑定其他类型:

    技术分享

    父类有slots语句的上面已经有了,就不截图演示了;

 3.多重继承:

  1)java只允许单重继承,pyhon允许多重继承,用MixIn设计实现;

  2)MixIn的好处就是给类增加多个功能,有较好的扩展性,将功能写成XXXMixIn类,直接继承就可以获得其属性和方法;

  3)使用MixIn就不要设计多层的复杂的继承关系;

Python面向对象编程高级特性

标签:运行   语言   分享   没有   父类继承   att   子类   多个   多重继承   

原文地址:http://www.cnblogs.com/robin2ML/p/6724093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!