Python之设计模式、异常处理、模块与包、文件操作及编码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/github_39655029/article/details/82983967

单例设计模式

  • 设计模式:前人工作的总结与提炼,针对某一特定问题的比较成熟的解决方案,使用设计模式可提高代码复用率、可读性,可靠性;
  • 单例设计模式:目的是让类所创建的对象在系统中只有唯一一个实例,让每一次执行类名()所返回的对象的内存地址都是同一个的;
  • __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

  • 功能:将字符串当成一个有效的表达式来求值并返回结算结果;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券