一、面向对象的三大特征
-封装
-提高程序的安全性
-将数据(属性)和行为(方法)包装到类对象中,在方法内部对属性进行操作,在类对象的外部调用方法
-这样无需关心方法内部的具体实现细节,从而隔离了复杂度
-在python中没有专门的修饰符用于属性的私有,如果不希望在类对象外部被方法,前边使用两个"_"
-继承
-提高代码复用性
-语法格式
-class 子类类名(父类1,父类2...):pass
-如果一个类没有继承任何类,则默认继承object
-python支持多继承
-定义子类时,必须在其构造函数中调用父类的构造函数
-多态
-提高程序的可扩展性和可维护性
二、方法重写
-如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写
-子类重写后的方法中可以通过super().xxx()调用父类中被重写的方法
三、object类
-object类是所有类的父类,因此所有类都有object类的属性和方法。
-内置函数dir()可以查看指定对象所有属性
-object有一个_str_()方法,用于返回一个对于"对象的描述",对应于内置函数str()经常用于print()方法,帮我们查看对象信息,所以我们经常会对_str_()进行重写
四、静态语言和动态语言关于多态的区别
-静态语言实现多态的三个必要条件
-继承
-方法重写
-父类引用指向子类对象
五、特殊方法和属性
-特殊属性
-_dict_;获得类对象或实例对象所绑定的所有属性和方法字典
-特殊方法
-_len_():通过重写_len_()方法,让内置函数len()的参数可以是自定义类型
-_add_():通过重写_add_()方法,可使用自定义对象具有‘+’功能
-_new_():用于创建对象
-_init()_:对创建的对象进行初始化
六、模块
-什么叫模块
-模块的英文为modules
-函数与模块的关系
-一个模块中可以含有n个函数
-在python中一个扩展名为.py的文件就是一个模块
-使用模块的好处
-方便其他程序和脚本导入并使用
-避免函数名和变量名冲突
-提高代码的可维护性
-提高代码的可重用性
-自定义模块
-创建模块:新建一个.py文件,名称尽量不要与python自带的标准模块名称相同
-导入模块:import 模块名称 [as别名] from 模块名称 import 函数/变量/类
-python中的包
-包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下
-作用
-代码规范
-避免模块名冲突
-包与目录的区别
-包含__init__.py文件的目录称为包
-目录里通常不包括__init__.py文件
-包的导入
-import 包名.模块名
-import后面只可以跟包名
-from后面可以是包名也可以是包.变量
-python中常用的内置模块
-sys 与python解释器及其环境操作相关的标准库
-time 提供与时间相关的各种函数标准库
-os 提供了访问操作系统服务功能的标准库
-calendar 提供与日期相关的各种函数的标准库
-urllib 用于读取来自网上(服务器)的数据标准库
-json 用于使用json序列化和反序列化对象
-re 用于在字符串中执行正则表达式
-math 提供标准算术运算函数的标准库
-decimal 用于进行精确控制运算精度有效数位和四舍五入操作的十进制运算
-logging 提供了灵活的记录事件,错误,警告和调试信息等日志信息功能
七、编码格式
-常见的字符编码格式
-python的解释器使用的是unicode(内存)
-.py文件在磁盘上使用utf-8存储(外存)
八、文件的读写原理
-文件的读写俗称I/O操作
-文件读写操作流程
-操作原理
-python操作文件->打开或新建文件->读、写文件->关闭资源
-文件的读写操作
-内置函数open()创建文件对象
-语法规则
-file=open(filename,[mode,encoding])
-常用的文件打开格式
-文件类型
-按文件中数据的组织形式,文件分为一下两大类
-文本文件
-存储的是普通字符文本,默认为unicode字符集,可以使用记事本程序打开
-二进制文件
-把数据内容用字节进行存储,无法用记事本打开,必须使用专用的软件打开
-打开模式
-r 以只读模式打开,文件的指针将会放在文件的开头
-w 以只写模式打开文件,如果文件不存在则创建,存在则覆盖原有内容,文件指针在文件的开头
-a 以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在则在文件末尾追加内容,文件指针在原文件末尾
-b 以二进制方式打开文件,不能单独使用,需要与共它模式一起使用 rb或者wb
-+ 以读写的方式打开文件,不能单独使用,需要与其他模式一起使用 a+
-文件对象的常用方法
-read(size) 从文件中读取size个字节或字符的内容返回,或者省略size则读取到文件末尾,即一次读取文件所有内容
-readline() 从文本文件中读取一行
-readlines() 把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
-writer(str) 将字符串str内容写入文件
-writelines(s_list) 将字符串列表s_list写入文本文件,不添加换行符
-seek(offset,[whence])
-把文件指针移动到新位置,offset表示相对于whence的位置offset为正 往结束方向移动 为负 往开始方向移动
-0从文件头开始计算(默认值)
-1从当前位置开始计算
-2从文件尾开始计算
-tell() 返回文件指针的当前位置
-flush() 把缓冲区的内容写入文件,但不关闭文件
-close() 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源
九、with语句
-with语句可以自动管理上下文资源,不论什么原因跳出with块,都能保证文件正确关闭,以此来达到释放资源的目的