复习

模块

模块支持从逻辑上组织Python代码。当代码量变得相当大的时候,我们最好把代码分成一些有组织的代码段,前提是保证他们的彼此交互。这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类,也可能使一组相关但彼此独立的操作函数。这些代码段是共享的,所以Python允许“调入”一个模块,允许使用其他模块的属性来利用之前的工作成果,实现代码重用。这个把其他模块中属性附加到你的模块中的操作叫做导入(import).那些自我包含并且有组织的代码片段就是模块(module)。

三类模块:

内置模块,第三方模块以及自定义的模块

常见的内置模块

datetime

datetime是Python处理日期和时间的标准库。

os

用于提供系统级别的操作

sys

用于提供对解释器相关的操作

hashlib

用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

json 和 pickle

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

shutil

高级的 文件、文件夹、压缩包 处理模块

ConfigParser

用于对特定的配置进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser。

logging

用于便捷记录日志且线程安全的模块

time

时间相关的操作,时间有三种表示方式:

  • 时间戳               1970年1月1日之后的秒,即:time.time()
  • 格式化的字符串    2014-11-11 11:11,    即:time.strftime('%Y-%m-%d')
  • 结构化时间          元组包含了:年、日、星期等... time.struct_time    即:time.localtime()

re

re模块用于对python的正则表达式的操作。

字符:

  . 匹配除换行符以外的任意字符
  \w 匹配字母或数字或下划线或汉字
  \s 匹配任意的空白符
  \d 匹配数字
  \b 匹配单词的开始或结束
  ^ 匹配字符串的开始
  $ 匹配字符串的结束

次数:

  * 重复零次或更多次
  + 重复一次或更多次
  ? 重复零次或一次
  {n} 重复n次
  {n,} 重复n次或更多次
  {n,m} 重复n到m次

random

随机数


面向对象编程

面向对象的三大特性是指:封装、继承和多态。

一、封装

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

所以,在使用面向对象的封装特性时,需要:

  • 将内容封装到某处
  • 从某处调用被封装的内容

二、继承

继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。

  • 面向对象是一种编程方式,此编程方式的实现是基于对 对象 的使用
  • 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中)
  • 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数
  • 面向对象三大特性:封装、继承和多态

类的成员

类的成员可以分为三大类:字段、方法和属性

一、字段

字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,

  • 普通字段属于对象
  • 静态字段属于

二、方法

方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。

  • 普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self
  • 类方法:由调用; 至少一个cls参数;执行类方法时,自动将调用该方法的复制给cls
  • 静态方法:由调用;无默认参数;

三、属性  

如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种。

对于属性,有以下三个知识点:

  • 属性的基本使用
  • 属性的两种定义方式

类成员的修饰符

类的所有成员在上一步骤中已经做了详细的介绍,对于每一个类的成员而言都有两种形式:

  • 公有成员,在任何地方都能访问
  • 私有成员,只有在类的内部才能方法

类的特殊成员

1. __doc__

  表示类的描述信息

2. __module__ 和  __class__

__module__ 表示当前操作的对象在那个模块

  __class__     表示当前操作的对象的类是什么

3. __init__

 构造方法,通过类创建对象时,自动触发执行。

4. __del__

析构方法,当对象在内存中被释放时,自动触发执行。

注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。

5. __call__

对象后面加括号,触发执行。

注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()

6. __dict__

  类或对象中的所有成员

7. __str__

  如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。

8、__getitem__、__setitem__、__delitem__

用于索引操作,如字典。以上分别表示获取、设置、删除数据

9、__getslice__、__setslice__、__delslice__

该三个方法用于分片操作,如:列表

10. __iter__

用于迭代器,之所以列表、字典、元组可以进行for循环,是因为类型内部定义了 __iter__

转载于:https://www.cnblogs.com/echorep/p/5040567.html

2015-12-06 第七天课程笔记相关推荐

  1. 分布式技术一周技术动态 2015.12.06

    分布式系统实践 1. 小米抢购限流峰值系统「大秒」架构解密 https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=402182304&am ...

  2. 地表最强! Unity 5.x 插件合集专用贴 - 更新日期 2015.12.06

     本帖集合了Unity 5.x的专用插件,如果是使用 4.6.x 的伙伴们切勿下载安装. MCS Male - 多变化的男用角色模型 http://www.narkii.com/club/thre ...

  3. 深度学习课程笔记(七):模仿学习(imitation learning)

    深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...

  4. MIT18.06线性代数课程笔记18:矩阵行列式的性质

    课程简介 18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-l ...

  5. 七月算法--12月机器学习在线班-第七次课笔记—最大熵

    七月算法--12月机器学习在线班-第七次课笔记-最大熵 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com 转载于:https://www.c ...

  6. 哈佛大学单细胞课程|笔记汇总 (七)

    哈佛大学单细胞课程|笔记汇总 (六) 哈佛大学单细胞课程|笔记汇总 (五) (七)Single-cell RNA-seq clustering analysis-- graph-based clust ...

  7. 【R】【课程笔记】07 分位数回归与VaR(ES)计算

    本文是课程<数据科学与金融计算>第7章的学习笔记,主要介绍计算VaR/ES风险测度的各种方法和极值理论等,用于知识点总结和代码练习,Q&A为问题及解决方案. 往期回顾: 博文 内容 ...

  8. cs213n课程笔记

    文章目录 一.计算神经网络(P1) 1 激活函数 实际操作: 2 数据预处理 3 权重初始化 4 批标准化 二.训练神经网络(P2) 1.梯度下降 实际使用 2.避免过拟合 3.正则化 Trainin ...

  9. 数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识

    #2018-03-22 10:23:16 March Thursday the 12 week, the 081 day SZ SSMR http://blog.csdn.net/eastmount/ ...

  10. 【R】【课程笔记】04+05 数据预处理+收益率计算

    本文是课程<数据科学与金融计算>第4-5章的学习笔记,主要介绍金融数据处理.收益率计算和R与C++调用,用于知识点总结和代码练习,Q&A为问题及解决方案. 往期回顾: 博文 内容 ...

最新文章

  1. 信息理论基础 周炯槃 常迥
  2. android运用 sqlite 实现简单的通讯录_大一新生作品:利用 C 语言实现quot;通讯录管理系统quot;,直言太简单...
  3. Python实用笔记 (2)list和tuple
  4. Unity3D GUI中的图片尾随鼠标旋转脚本
  5. list array解析(总算清楚一点了)
  6. @程序员,这 TOP 11 物联网云平台速码!
  7. Digilent提供的Pmod AD5驱动程序
  8. 【原创】docker在Ubuntu下1小时快速学习
  9. AUTOSAR和OSEK关系及网络管理比较
  10. 超市总营业额分析程序
  11. 微信小程序文本如何换行
  12. 【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例
  13. 解决Eclipse4K屏下工具栏过小
  14. stack around xxx is corrupted
  15. 基于时间序列分析方法的零售业快消品销量预测研究
  16. 在线网校平台搭建的流程
  17. R语言:特殊数据类型S4
  18. 删掉微信聊天记录怎么恢复 ?怎么恢复微信聊天记录?
  19. 【莫问前路】数据结构篇 绪论
  20. 2-2 进制转换(Q进制转换成T进制) (25分)

热门文章

  1. IP地址,子网掩码,默认网关,DNS服务器是什么意思?
  2. bme280中文技术手册_华为认证数通高级路由交换技术高级工程师 V1.0发布通知
  3. Localdatetime的坑
  4. XMLHttpRequest发送XML请求
  5. 【渝粤教育】国家开放大学2018年秋季 0321-21T学前心理学 参考试题
  6. 【渝粤教育】国家开放大学2018年春季 0557-22T广告设计 参考试题
  7. 一个程序段两个小问题
  8. 23种设计模式(二十三)行为变化之访问器
  9. An Introduction to Unstructured Mesh Generation Methods and Softwares for Scientific Computing
  10. 卷积的物理意义是什么?