Python面向对象编程
文章平均质量分 83
a_small_python
能力一般,水平有限,如有错误,欢迎指正~~~
展开
-
面向对象--01面向对象基本概念
OOA 面向对象分析OOD 面向对象设计OOP 面向对象编程 OO的特征封装:对象封装 属性和方法,是一种信息隐蔽技术继承:子类自动共享父类之间数据和方法的机制多态:不同对象对统一方法响应不同的行动 面向对象(object oriented)Python完全采用了面向对象程序设计的思想,是真正面向对象的高级动态编程语言,完全支持面向对象的基本功能,如封装、继承、多态以...原创 2018-03-23 20:57:39 · 508 阅读 · 0 评论 -
面向对象--02面向对象的三个基本特征
1.面向对象的三大特征 之 封装通常把隐藏 属性、方法与方法实现细节 的过程 称为封装为了保护类里面的属性,避免外界随意赋值,可以采用以下方法解决:①把属性定义为私有属性,即属性名前加两个下划线②添加可以供外界调用的两个方法,分别用于设置或者获取属性值class Person: def __init__(self,name,age): self.name = name ...原创 2018-03-23 21:09:02 · 207 阅读 · 0 评论 -
面向对象--03魔法方法
python的魔法方法(被双下划线包围) 所谓工厂函数就是类对象1.构造方法①__new__(cls[,...])实例化对象时第一个被调用的方法cls-->类 如果cls后还有参数,则参数会原封不动的传给init方法,new方法需要一个实例对象作为返回值(return),通常为cls极少重写,但当继承一个不可变类型时需要重写new方法__new__方法的调用是发生在__init...原创 2018-03-23 21:22:08 · 295 阅读 · 0 评论 -
面向对象--04定制容器
协议(Protocols)与其他编程语言中的接口相似,它规定你哪些方法必须要定义。然而,在python中的协议就不那么正式,它更像是一种指南。容器类型的协议一·定制不可变容器需要定义:__len__(self) __getitem__(self,key)定义一个自定义列表,要求该列表可以统计每个元素被访问的次数class CountList: def __init__(self,*args...原创 2018-03-24 13:03:22 · 482 阅读 · 0 评论 -
面向对象--05迭代器与生成器
一·迭代器可以直接作用于for循环的对象统称为可迭代对象(Iterable)。可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。所有的Iterable均可以通过内置函数iter()来转变为Iterator。对迭代器来讲,有一个__next__()就够了。在你使用for 和 in 语句时,程序就会自动调用即将被处理的对象的迭代器对象,然后使用它的__next__()方...原创 2018-03-24 20:10:43 · 174 阅读 · 0 评论 -
面向对象--06描述符
1、什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问。这些方法有 __get__(), __set__(), 和__delete__()。如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符。所以,某个类,只要是内部定义了方法 __get__, __set__, __delete__ 中的一个或多个,就可以称为描述符描述...原创 2018-03-24 20:35:21 · 184 阅读 · 0 评论 -
面向对象--07属性访问的魔法方法
重写一下四个魔法方法,即可控制对象的属性访问1.__getattr__(self,name)定义当用户试图获取一个不存在的属性时的行为2.__getattribute__(self,name)定义当该类的属性被访问时的行为(先于__getattr__(self,name)执行)3.__setattr__(self,name,value)定义当一个属性被设置时的行为4.__delattr__(sel...原创 2018-03-25 21:44:36 · 187 阅读 · 0 评论 -
面向对象--08类和对象相关BIF
1.issubclass(class,classinfo)若第一个参数是第二个参数的子类,则返回Ture。注:①一个类被认为是自身的子类②classinfo可以是类对象组成的元组,只要class与其中任意一个符合关系,就返回Ture>>> issubclass(A,object)True>>>object是所有类的基类 2.isinstance(object,c...原创 2018-03-25 21:56:38 · 151 阅读 · 0 评论