__new__方法
1. 概念
在类中默认 有个 __new__ 方法(object上的), 该方法用于开辟对象的内存空间.
注意:
1. __new__方法先调用开辟内存, 再调用 __init__ 初始化
2. 作用: 单例模式 中要使用
单例模式
概念:单例模式: 指一个类有且只能创建一个对象, 目的为了节约内存空间
例如: 回收站, 有且只需要一个就能实现所需的功能,没有必要创建多个,浪费内存资源
异常(重点)
1. 概念
什么是异常: 错误就是异常(出现错误,以异常的形式抛出)
底层实现(了解): 通过对象的形式实现( 异常对象=异常类名() )
作用: 工作中不可能应为或大或小的错误 就抛出异常, 因为异常一旦抛出终止代码向下执行.
因此, 我们需要捕获异常, 捕获异常后异常就不会抛出, 代码就能继续执行.
2. 捕获异常的基本语法
try:
可能抛出异常的代码块
except:
备注:
1. 如果 try中的代码块出现异常, 终止try代码块往下执行
2. 不是所有的错误都能捕获, 语法错误是捕获不了, 执行的时候的错误才能捕获
异常的类型
"""
掌握 异常的类型
1. 概念:
异常(错误) 是分类型, 异常有很多类(class)
常见类型: FileNotFoundError,NameError,IndexError
注意: 异常有很多类型, 我们只捕获 Exception 类型及其子类型的错误
2. 捕获指定类型的错误
try:
可能出现异常的代码块
except 异常类名 as e:
except (异常类名1,异常类名2) as e:
注意:
1. 将所有的代码错误都捕获, 只需要将异常类写成 Exception
异常的完整语法
try:
可能错误的代码块
except 异常类名 as e:
except (异常类名1,异常类名2) as e:
except Exception as e:
else:
finally:
手动抛出异常
1. 语法:
raise 异常类名("自定义错误提示信息")
方式二:
在 except 中如果想要继续抛出异常,直接使用 raise
模块和包
1. 模块的概念(module)
a. 团队开发, 不可能将所有的代码写到同一个文件, 分文件存放
b. 我们自己可能使用到别人写的代码(在一个文件中)
c. 人类掌握的基本单词太少了, 及其容易造成命名冲突, 分文件存放
在python中 一个py文件就是一个模块
备注: 模块和包的命名符合 标识符命名规范(注意不能以数字开头)
2. 包的概念(package 包)
包: 其实就是一个文件夹,存储多个模块. 标准的包 中创建一个 __init__.py 文件
好处:
1. 方便管理多个模块
2. 解决模块重名的问题
模块的操作
1. 模拟
a. 创建一个py文件, 写 函数,类,变量,输出(文件名不能以数字开头)
b. 在自己的文件中,导入别人的模块(mymodule)
导入语法:
import 模块名
from ... import ...
from 模块名 import 函数/类/变量
c. 使用导入的内容
技巧: import 后面接什么,就用什么 (对象.成员)
2. 模块测试代码(执行代码)的书写位置
补充 魔术变量: __name__ : 其值由python自动赋值
(1): 当 当前文件 作为主执行文件(python 解释器后接的文件为主执行文件),
__name__等于__main__
(2): 当 当前文件为 被导入的文件,__name__的值为模块名
if __name__ == "__main__":