一.模块
-
什么是模块
Python中一个py文件就是一个模块。
模块分为系统模块和自定义模块。
-
怎么使用模块 - 怎么在一个模块中去使用另外一个模块中的内容
注意:1)如果一个模块中的内容想要被别的模块使用,那么这个模块的名字必须符合变量名的要求。
2)符合命名要求的模块中,只有全局变量可以被别的模块使用。
-
怎么导入模块 - 要使用别的模块中的内容,必须先导入
1)import 模块名 - 导入指定模块,导入后可以通过’模块名.xxx’的方式去使用模块中所有的全局变量。
2)from 模块名 import 变量名1, 变量名2,… - 导入指定模块,导入后可以直接使用import后面所有的全局 变量。
3)from 模块名 import * - 导入指定模块,导入后可以直接使用模块中所有的全局变量。
4)import 模块名 as 新模块名 - 导入模块的时候给模块重命名。
5)from 模块名 import 变量名1 as 新变量名1,变量名2,… - 重新给指定变量命名。
1. 导入方式1: import 模块名 import test print(test.a) print(test.x) test.func1() import functools functools.reduce() 2. 导入方式2:from 模块名 import 变量名1, 变量名2, ... from test import a, func1 print(a) # print(x) # 报错:NameError: name 'x' is not defined! func1() 3. 导入方式3:from 模块名 import * from test import * print(a) print(x) func1() 4.模块重命名 import 模块名 as 新模块名 test = 100 import test as test1 print(test1.a, test1.x) test1.func1() 5.变量重命名 from test import a, x as t_x print(t_x) print(a)
二.导入模块的原理
-
导入原理
当代码执行到导入模块的操作的时候,系统会自动进入被导入的模块,将模块中的代码全部执行一遍。
import和from-import在导入模块的时候会自动检测模块是否重复导入,如果已经导入过,不会重复导入。
-
阻止导入
from downloadMovies import download download('哈利波特1') print(f'05的__name__:{__name__}') if __name__ == '__main__': pass
三.异常捕获
-
异常
程序在执行过程中报错,这个叫程序就出现异常(错误 == 异常)。
异常的出现会终止程序的运行。
-
捕获异常 - 让程序在出现异常的时候不报错,并且可以继续执行
1)捕获异常的使用场景:命名知道某个位置可能会出现异常,但是又无法(不愿意)通过修改代码来避免异常,还想在异常出现的时候继续执行,就可以对这段 代码进行异常捕获。
2)语法:
结构1:
try: 代码段1(需捕获异常的代码段) except: 代码段2(捕获到异常后会执行的代码) else: 代码段3(没有捕获到) 其他代码
执行过程:先执行代码段1,如果代码段1没有异常直接执行其他代码;如果代码段1出现异常,马上执行代码段2,再执行其他代码。
结构2 - 捕获特定异常
try: 代码段1(需要捕获异常的代码) except 异常类型: 代码段2(捕获到指定异常后执行的代码)
结构3: - 同时捕获多种异常,不同类型的异常做相同的处理
try: 代码段1(需要捕获异常的代码) except (异常类型1, 异常类型2,...): 代码段2(捕获到指定异常后执行的代码)
结构4: - 同时捕获多种异常,根据不同类型的异常做不同的处理
try: 代码段1(需要捕获异常的代码) except 异常类型1: 代码段11(捕获到指定异常后执行的代码) except 异常类型2: 代码段22(捕获到指定异常后执行的代码) except 异常类型3: 代码段33(捕获到指定异常后执行的代码) ...
-
关键字finally(了解)
try: 代码段1(需要捕获异常的代码段) except 异常类型: 代码段2(捕获到异常后会执行的代码) finally: 代码段3(无论前面的代码怎么执行的,代码段3都会执行)