单例设计模式
设计模式:前人工作的总结与提炼,针对某一特定问题的比较成熟的解决方案,使用设计模式可提高代码复用率、可读性,可靠性;
单例设计模式:目的是让类所创建的对象在系统中只有唯一一个实例,让每一次执行类名()所返回的对象的内存地址都是同一个的;
__new__()方法
作用:在内存中给对象分配空间,返回对象的引用;
重写时一定要return super().__new__(cls);
只执行一次初始化工作的解决方法之一
定义类属性init_flag用于标记是否执行过初始化动作,初始化为False;
然后在内置方法__init__方法中判断init_flag,若值为False则执行初始化操作,然后将init_flag置为True,若值为True则不再执行初始化动作;
异常
异常捕获的目的:增强程序稳定性和健壮性;
捕获异常的语法
try: #尝试执行的代码 pass except exception1: # TODO出现错误1后处理的代码 pass except exception2: # TODO出现错误2后处理的代码 pass except Exception: # TODO处理未知错误的代码 pass finally: # TODO无论是否有异常,都将执行的代码 pass
- 异常的传递
当函数/方法执行出现异常时,调用函数/方法的一方也会出现异常,当传递到主程序仍无异常处理时,程序才会终止;
- 抛出异常
- 创建一个
Exception
类的对象; - 使用
raise
关键字抛出异常;
模块与包
- 导入语法
# 全部导入 import 模块名 # import 模块名 as 模块别名 # 局部导入 from 模块名 import 工具名
- 注意:导入的不同模块中存在相同函数名时,后导入的会覆盖先导入的模块中的函数;
- 原则:每个文件都应该可以做为被导入的模块;
__name_
属性可以让测试的代码只在测试的情况下被运行,而在导入时不会被执行;- 如何制作发布压缩包,安装以及卸载
- 1、创建
setup.py
文件
from distutils.core import setup setup(name = '包名', version = '版本', description = '描述信息', long_description = '完整描述信息', author = '作者', email = '邮箱', url = '个人主页', py_modules = [包所包含的模块列表] )
2、构建模块
python setup.py build
3、生成发布压缩包
python setup.py sdist
4、安装
python setup.py install
5、卸载
直接将所安装的软件包所安装的目录删除即可;
文件操作
当我们进行文件操作时,要记得关闭文件,否则就会造成系统资源消耗,且后续的文件访问也会受到影响;
文件指针
用于标记从哪个位置开始读取数据;
当第一次打开文件时,通常文件指针是指向文件开头位置;
进行文件读取方法后,指针会移动到读取内容的末尾;
文件访问模式
访问模式 功能
r 只读,文件指针位于文件开头,文件不存在则抛出异常
w 只写,文件存在则覆盖,不存在则创建
a 追加,文件存在则在文件末尾追加,不存在则创建后写入
r+ 读写,文件指针位于文件开头,文件不存在则抛出异常
w+ 读写,文件存在则覆盖,不存在则创建
a+ 读写,文件指针置于文件末尾,不存在则创建后写入
文件及目录操作
方法名 说明
rename 重命名文件,os.rename('源文件', '目标文件')
remove 删除文件, os.remove('文件名')
listdir 目录列表,os.listdir('目录名')
mkdir 创建目录,os.mkdir('目录名')
rmdir 删除目录,os.rmdir('目录名')
getcwd 获取当前目录,os.getcwd()
chdir 修改工作目录,os.chdir('目标目录')
path.isdir 判断是否为文件,os.path.isdir('文件路径')
文本编码
Python2.x中默认使用ASCII编码,Python3.x默认使用utf-8编码;
python2.x中在字符串前边加上u用于告知解释器这是一个utf-8编码格式的字符串;
内建函数 eval
功能:将字符串当成一个有效的表达式来求值并返回结算结果;
文章知识点与官方知识档案匹配,可进一步学习相关知识
Python技能树预备知识常用开发工具19845 人正在系统学习中