1,多态:对不同类的对象使用同样的操作,但使用函数显示地检查类型能够毁掉多态(eg: type,isinstance,issubclass)

封装:多态让用户对于不知道是什么类的对象进行方法调用,而封装可以不用关心对象是如何构建的而直接进行使用

2,私有方式访问:在其名字前加上双下划线(注意不是单下划线)即可,‘__名字’此种类型在外部是无法被访问的,但是在类的内部还能使用访问,因为在类的内部定义中,所有的双下划线被翻译为前面加上单下划线和类名的形式,即:在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。

3,指定超类:Filter 类的用处在于它可以用作其他类的积累(超类),比如SPAMFilter类(其中的filter方法是从Filter类中继承的),可以将序列中的SPAM过滤出去

4,issubclass函数:用于检查一个类是否为另一个类的子类;isinstance运用于检查一个对象是否为一个类的实例;使用__class__特性可以知道一个对象属于哪个类,eg: s.__class__

5,多重继承:注意一个方法从多个超类继承,注意超类的顺序

6,对象:对象包括方法和特性,特性只是其一部分的变量,方法是存储在对象内的函数,方法和其他函数的区别在于方法总是将对象作为自己的第一个参数,这个参数一般称为self。

7,类:定义其实例会用到的方法

8,构造方法:当一个类的构造方法被重写时,对象的初始化有时会出现错误。此时,可以调用超类构造方法的未绑定版本或者使用super函数解决,使用super函数时,当前的类和对象作为super函数的参数使用,调用函数返回的对象的任何方法都是超类的方法,而不是当前类的方法。

9,绑定和不绑定方法:在调用一个实例的方法时,该方法的self参数会被自动的绑定到实例,但如果直接调用类的方法(eg:Bird__init__(self)),此时没有实例会被绑定

10,属性:property函数(eg:size = property(GetSize, SetSize))可用0、1、2、3或者4个参数来调用,没参数则产生的属性既不可读又不可用,4个参数分别被叫做fget/fset/fdel/doc,其实property并不是一个真正的函数,而是其实例有很多方法的类(也可以使用@property)

11,静态方法和类成员方法:使用@staticmethod和@classmethod

12,迭代器:即具有next方法的对象,且next方法在调用时不需要任何的参数,调用时会返回其下一个值,当调用next后单迭代器没有值返回时会已发一个StopInteration异常。一个对象若实现__iter__方法是可迭代的,一个对象实现了next方法则是迭代器。除了在迭代器和可迭代对象上进行迭代外,还能把它们转换为序列,大部分能使用序列的地方可以使用迭代器(eg:使用list构造方法显式地将迭代器转化为列表)。

13,生成器:一种用普通的函数语法定义的迭代器,任何包含yield语句的函数称为生成器,其行为和普通的函数有很大的差别,每次产生多个值而不是像return那样返回值。每次产生一个值(使用yield语句),函数就会被冻结(等待激活)

14,堆:heappush(heap,x):将x入堆,heappop(heap):将堆中的最小元素弹出,一般来说都是在索引是0 处的元素(因为heappop会做一些移位操作)   堆属性:位于第i位的元素总是比第2i以及第2i+1处元素小,基于堆属性,可以使用heapify函数heapify(heap)可以讲任意列表通过尽可能少的移位操作转换为合法的堆

python_学习笔记的更多相关文章

  1. python_ 学习笔记(hello world)

    python中的循环语句 循环语句均可以尾随一个else语句块,该块再条件为false后执行一次 如果使用break跳出则不执行. for it in [1,2,3,4]: print(it,end= ...

  2. python_ 学习笔记(运算符)

    python的运算符基本和C语言一致,以下说一些不一样的! 算术运算符 **:代表乘方,对应也有**=: //:代表商向下取整,对应也有//=: 逻辑运算符 and or not 位运算符 :& ...

  3. python_ 学习笔记(基本数据类型)

    python3有6中标准数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Dictionary(字典).Set(集合)不可变数据:Number.String ...

  4. python_ 学习笔记(基础语法)

    python的注释 使用(#)对单行注释 使用('''或者""")多行注释,下面的代码肯定了python的牛逼 print("python是世界上最好的语言吗? ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  7. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  8. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  9. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. Cadence SPB 16. 6 安装步骤

    1.首先下载Cadence Allegro SPB orCAD16. 6 安装包,单击我,下载之后运行其中的setup.exe,然后先安装第一项License Manager

  2. 服务管理-DNS

    DNS服务 DNS(Domain Names System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址.通 ...

  3. Django-缓存的配置

    缓存的介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗 ...

  4. caffe学习--caffe入门classification00学习--ipython

    首先,数据文件和模型文件都已经下载并处理好,不提. cd   "caffe-root-dir " ----------------------------------分割线---- ...

  5. Lua_第17 章 数学库

    第17 章 数学库 在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能.为了可以清楚地说明问题,我可能 会忽略一些小的选项或者行为.基本 ...

  6. arcgis for javascript 隐藏或显示底图

    arcgis for javascript展示地图的时候,有图层的概念,一层一层的,类似photoshop,在应用界面上控制图层的显隐,是极常见的功能. 但是,如果是控制底图的显示或隐藏呢,怎么搞? ...

  7. jquery 通过ajax 提交表单

    1.需要引入以下两个js文件 <script src="Easyui/jquery-1.7.2.min.js"></script>    <scrip ...

  8. Hadoop实战-使用Eclipse开发Hadoop API程序(四)

    一.准备运行所需Jar包 1)avro-1.7.4.jar 2)commons-cli-1.2.jar 3)commons-codec-1.4.jar 4)commons-collections-3. ...

  9. HDU 2444 The Accomodation of Students (二分图最大匹配+二分图染色)

    [题目链接]:pid=2444">click here~~ [题目大意]: 给出N个人和M对关系,表示a和b认识,把N个人分成两组,同组间随意俩人互不认识.若不能分成两组输出No,否则 ...

  10. 安装mysql时,提示This application requires .NET framework 4.0问题

    Question:双击MySQL的安装文件, 弹框提示,   Answer:安装微软的 .NET Framework 4或更新的版本,下载地址:https://www.microsoft.com/zh ...