开发者社区> 村雨遥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: Python 之设计模式、异常处理、模块与包、文件操作及编码
+关注继续查看

单例设计模式

设计模式:前人工作的总结与提炼,针对某一特定问题的比较成熟的解决方案,使用设计模式可提高代码复用率、可读性,可靠性;

单例设计模式:目的是让类所创建的对象在系统中只有唯一一个实例,让每一次执行类名()所返回的对象的内存地址都是同一个的;

__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 人正在系统学习中


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python:设计模式之单例模式
Python:设计模式之单例模式
12 0
Python 设计模式:单例模式
单例模式可能是最简单的设计模式,单例是非常通用的对象。让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
80 0
Python:设计模式之单例模式
Python:设计模式之单例模式
28 0
cxa
python设计模式之单例模式(一)
单例设计模式的概念: 单例设计模式即确保类有且只有一个特定类型的对象,并提供全局访问点。一般我们操作数据库的时候为了避免统一资源产生互相冲突,创建单例模式可以维护数据的唯一性。 单例模式的特性: 确保类有且只有一个对象被创建。
1347 0
cxa
python设计模式之单例模式(二)
上次我们简单了解了一下什么是单例模式,今天我们继续探究。 上次的内容点这 上次们讨论的是GoF的单例设计模式,该模式是指:一个类有且只有一个对象。通常我们需要的是让实例共享一个相同的装态 比如数据库连接。
3671 0
python设计模式(四):单例模式及创建型模式总结
单例,顾名思义是一个实例,即在一个项目之中,单例的类只实例化一次。它常常应用于数据库操作、日志函数。 在一个大型项目中使用到日志和数据库操作的地方很多,不能每个文件都去单独实例化一次,此时单例模式就显示出了他的价值。
1093 0
1、Python与设计模式--单例模式
#一、总线 总线是计算机各种功能部件或者设备之间传送数据、控制信号等信息的公共通信解决方案之一。现假设有如下场景:某中央处理器(CPU)通过某种协议总线与一个信号灯相连,信号灯有64种颜色可以设置,中央处理器上运行着三个线程,都可以对这个信号灯进行控制,并且可以独立设置该信号灯的颜色。
24579 0
Python编程:排序算法之插入排序
Python编程:排序算法之插入排序
18 0
+关注
村雨遥
CSDN 博客专家及 Java 领域优质创作者,华为云云享专家。 获取资料,请关注我的公众号(村雨遥)。个人博客:https://cunyu1943.site
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Python第五讲——关于爬虫如何做js逆向的思路
立即下载
Python系列直播第一讲——Python中的一切皆对象
立即下载
Python 脚本速查手册
立即下载