包、模块与异常处理

包、模块与异常处理

模块

python中一个py文件就是一个模块
模块分为系统模块和自定义模块
怎么在一个模块中使用另外一个模块的内容
**注意:**如果希望一个模块能够被另外的模块使用,那么这个模块的模块名必须是标识符并且不是关键字
符合命名要求的模块中,只有全局变量可以被别的模块使用

导入模块

import 模块名 - 导入指定模块,导入后可以通过’模块名.'的方式使用模块中所有的全局变量

**from 模块名 import 全局变量1,全局变量2,… ** - 导入指定模块,导入后可以直接使用指定的全局变量

**from 模块名 import * ** - 导入指定模块,导入后可以直接使用所有的全局变量

import 模块名 as 新模块名 - 对模块重命名,重命名后使用模块的时候使用新模块名

导入模块原理

当通过import或者from-import导入一个模块的时候,系统会自动将这个模块中的代码全部执行一遍
在导入模块的时候会自动检测模块是否重复导入,如果已经导入过,不会重复导入

# 导入方式一:import 
import random
random.randint(1,10)   # 产生一个随机整数(1-10)
random.random()		# 产生一个随机数(0-1)

# 导入方式二:from...import
from random import randint
randint(1,10)	   # 产生一个随机整数(1-10)
# random()	# 报错

# 导入方式三:使用通配符*
from random import *
randint(1,10)   # 产生一个随机整数(1-10)
random()		# 产生一个随机数(0-1)

# 导入方式四:模块重命名
import random as mod
mod.randint(1,10)   # 产生一个随机整数(1-10)
mod.random()		# 产生一个随机数(0-1)

# 导入方式五:对变量重命名
from random import random as ra, randint
randint(1,10)   # 产生一个随机整数(1-10)
ra()		# 产生一个随机数(0-1)

阻止导入

#	在这个if中代码被别的模块导入的时候不会执行
if __name__ == '__main__':
	pass

包就是包含__init__.py文件的文件夹

使用包中的内容(导入)

import 包名 - 直接导入包

import 包.模块 - 可以通过’包.模块.'去使用指定模块中的所有全局变量

from 包 import 模块1,模块2

from 包.模块 import 变量名1,变量名2

导入包的原理

通过包导入包中的模块的时候,程序会先执行包中__init__.py文件中所有的代码,热案后再执行对应模块中的代码

# 1. 直接导入包
import files

# 2. 通过包导入模块
import files.excel
files.excel.read_excel()
print(files.excel.x)

# 重命名
import files.excel as f_excel
f_excel.read_excel()
print(f_excel.x)

# 3. 通过包导入模块
from files import excel, plist
excel.read_excel()
plist.read_plist()

# 4. 通过包导入模块中的内容
from files.excel import read_excel
read_excel()

# 5. 直接使用包中的快捷
import files
files.read_excel()

from files import read_excel
read_excel()

import files
files.plist.read_plist()

异常处理

异常

程序在执行过程中报错,这个叫程序出现异常(错误 == 异常)
异常的出现会终止程序的运行

捕获异常

让程序在出现异常的时候不报错,并且可以继续执行
捕获异常的使用场景∶明明知道某个位置可能会出现异常,但是又无法(不愿意)通过修改代码来避免异常,还想在异常出现的时候程序可以继续执行,就可以对这段代码进行异常捕获。

异常处理

# 语法1
try:
	代码段1(需要捕获异常的代码段)
except :
	代码段2(捕获到所有异常(发生错误)时运行的代码)

# 语法2
try:
	代码段1(需要捕获异常的代码段)
except 异常(错误)类型:
	代码段2(捕获到异常(发生错误)时运行的代码)

# 语法3
try:
	代码段1(需要捕获异常的代码段)
except (异常1,异常2,...):
	代码段2(捕获到异常1,2...(发生错误)时运行的代码)

# 语法4
try:
	代码段1(需要捕获异常的代码段)
except 异常类型1:
	代码段2(捕获到异常1(发生错误)时运行的代码)
except 异常类型2:
	代码段3(捕获到异常2(发生错误)时运行的代码)
...


# 语法5
try:
	代码段1(需要捕获异常的代码段)
except 异常(错误)类型:
	代码段2(捕获到异常(发生错误)时运行的代码)
finally:
	代码段3(无论是否发生异常都会执行(就算异常没有被捕获到异常报错时也会执行))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值