2015-12-06 第七天课程笔记
复习
模块
模块支持从逻辑上组织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 第七天课程笔记相关推荐
- 分布式技术一周技术动态 2015.12.06
分布式系统实践 1. 小米抢购限流峰值系统「大秒」架构解密 https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=402182304&am ...
- 地表最强! Unity 5.x 插件合集专用贴 - 更新日期 2015.12.06
本帖集合了Unity 5.x的专用插件,如果是使用 4.6.x 的伙伴们切勿下载安装. MCS Male - 多变化的男用角色模型 http://www.narkii.com/club/thre ...
- 深度学习课程笔记(七):模仿学习(imitation learning)
深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...
- MIT18.06线性代数课程笔记18:矩阵行列式的性质
课程简介 18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-l ...
- 七月算法--12月机器学习在线班-第七次课笔记—最大熵
七月算法--12月机器学习在线班-第七次课笔记-最大熵 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com 转载于:https://www.c ...
- 哈佛大学单细胞课程|笔记汇总 (七)
哈佛大学单细胞课程|笔记汇总 (六) 哈佛大学单细胞课程|笔记汇总 (五) (七)Single-cell RNA-seq clustering analysis-- graph-based clust ...
- 【R】【课程笔记】07 分位数回归与VaR(ES)计算
本文是课程<数据科学与金融计算>第7章的学习笔记,主要介绍计算VaR/ES风险测度的各种方法和极值理论等,用于知识点总结和代码练习,Q&A为问题及解决方案. 往期回顾: 博文 内容 ...
- cs213n课程笔记
文章目录 一.计算神经网络(P1) 1 激活函数 实际操作: 2 数据预处理 3 权重初始化 4 批标准化 二.训练神经网络(P2) 1.梯度下降 实际使用 2.避免过拟合 3.正则化 Trainin ...
- 数据挖掘课程笔记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/ ...
- 【R】【课程笔记】04+05 数据预处理+收益率计算
本文是课程<数据科学与金融计算>第4-5章的学习笔记,主要介绍金融数据处理.收益率计算和R与C++调用,用于知识点总结和代码练习,Q&A为问题及解决方案. 往期回顾: 博文 内容 ...
最新文章
- 信息理论基础 周炯槃 常迥
- android运用 sqlite 实现简单的通讯录_大一新生作品:利用 C 语言实现quot;通讯录管理系统quot;,直言太简单...
- Python实用笔记 (2)list和tuple
- Unity3D GUI中的图片尾随鼠标旋转脚本
- list array解析(总算清楚一点了)
- @程序员,这 TOP 11 物联网云平台速码!
- Digilent提供的Pmod AD5驱动程序
- 【原创】docker在Ubuntu下1小时快速学习
- AUTOSAR和OSEK关系及网络管理比较
- 超市总营业额分析程序
- 微信小程序文本如何换行
- 【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例
- 解决Eclipse4K屏下工具栏过小
- stack around xxx is corrupted
- 基于时间序列分析方法的零售业快消品销量预测研究
- 在线网校平台搭建的流程
- R语言:特殊数据类型S4
- 删掉微信聊天记录怎么恢复 ?怎么恢复微信聊天记录?
- 【莫问前路】数据结构篇 绪论
- 2-2 进制转换(Q进制转换成T进制) (25分)
热门文章
- IP地址,子网掩码,默认网关,DNS服务器是什么意思?
- bme280中文技术手册_华为认证数通高级路由交换技术高级工程师 V1.0发布通知
- Localdatetime的坑
- XMLHttpRequest发送XML请求
- 【渝粤教育】国家开放大学2018年秋季 0321-21T学前心理学 参考试题
- 【渝粤教育】国家开放大学2018年春季 0557-22T广告设计 参考试题
- 一个程序段两个小问题
- 23种设计模式(二十三)行为变化之访问器
- An Introduction to Unstructured Mesh Generation Methods and Softwares for Scientific Computing
- 卷积的物理意义是什么?