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)可以讲任意列表通过尽可能少的移位操作转换为合法的堆

最新文章

  1. POJ2175 Evacuation Plan
  2. js ie8不支持项总结
  3. libctemplate——C语言模块引擎简介及使用
  4. Django Web在Apache上的部署
  5. Hacker(16)----防范端口扫描与嗅探
  6. .Net Core 2.0 EntityFrameworkCore CodeFirst入门教程
  7. Mybatis JPA 插件简介(v2.1.0)
  8. BZOJ_1266_[AHOI2006]上学路线route_最小割
  9. Codeforces Round #534 (Div. 1)
  10. SqlServer中创建非聚集索引和非聚集索引
  11. 监听auduo标签播放
  12. Java 的 clone 方法 && 浅复制和深复制
  13. Byte数组和字符串相互转换的问题
  14. 【HDFS API编程】查看目标文件夹下的所有文件、递归查看目标文件夹下的所有文件
  15. c c++ 函数不要返回局部变量的指针
  16. 如何监控 Java 垃圾回收机制: jps、jstack、jmap、jhat、jstat
  17. Git 中 pull 和 clone 的区别
  18. TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add(转)
  19. Redis 如何正确实现分布式锁
  20. 初次使用SQL调优建议工具--SQL Tuning Advisor

热门文章

  1. python(8)- python基础数据类型
  2. Python 模块之 ConfigParser: 用 Python 解析配置文件
  3. HDU 2102 A计划 (BFS)
  4. FastDFS的配置、部署与API使用解读(8)FastDFS多种文件上传接口详解(转)
  5. linux下apache https 虚拟主机配置
  6. EasyRTMP实现将RTSP流转换成RTMP流实现RTSP直播转RTMP直播的功能
  7. struts2的输入检验
  8. java基础知识查漏 二
  9. Process 'command 'D:\AndroidSDK\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2
  10. PAT 天梯赛 L2-013. 红色警报 【BFS】