1、模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句
模块让你能够有逻辑地组织你的 Python 代码段,不可能把代码写在一起
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。把代码揉到一起不便于 复用
模块能定义函数,类和变量,模块里也能包含可执行的代码
my_module.py
import sys
def get_path():
print('The PYTHONPATH is', sys.path, '\n')
class Demo:
a = 88
def func(self):
print("I am a member: ", self.a)
test.py
import my_module as a # 换了个名字
from my_module import Demo # 只引入了一个类,只引入了一部分,import * 引入全部
a.get_path()
d = Demo()
d.func()
输出结果
The PYTHONPATH is ['D:\\BaiduNetdiskDownload\\学员资料-20230710\\学员资料\\Python\\python基础\\13-模块', 'D:\\BaiduNetdiskDownload\\学员资料-20230710\\学员资料\\Python\\python基础\\13-模块', 'D:\\miniconda\\python311.zip', 'D:\\miniconda\\DLLs', 'D:\\miniconda\\Lib', 'D:\\miniconda', 'D:\\miniconda\\Lib\\site-packages', 'D:\\miniconda\\Lib\\site-packages\\win32', 'D:\\miniconda\\Lib\\site-packages\\win32\\lib', 'D:\\miniconda\\Lib\\site-packages\\Pythonwin']
I am a member: 88
2、异常
except 从句 可以专门处理 单⼀的错误或异常。如果没有给出错误或异常的名称,它会处理所有的错误和异常
对于每个 try 从句,至少都有⼀个相关联的 except 从句异常 就是用来处理错误的,对于抛出的异常:解决或结束程序
2.1 数值错误异常
while True:
try:
n = input("请输入一个整数: ")
n = int(n)
break
except ValueError as e:
print("无效数字,异常内容为:", e) # e就是异常的类型,异常结束之后再进入while
print("\n\n")
输入a,输出
输入1,结束程序
2.2 IO异常
import sys
try:
f = open('test.txt')
except IOError as e:
print("I/O error", e)
没有对应文件test.txt,输出结果
2.3 自定义异常
class MyException(Exception): # 需要继承标准的异常类的实现,C++/python异常都是以类来实现的
def __init__(self, length, atleast):
Exception.__init__(self)
self.length = length
self.atleast = atleast
很多时候,我们可预知某种错误的时候,希望在调用方 来处理异常,可以使用 已有异常类型
或者 ⾃定义异常,通过 raise 抛出去
try:
s = input('Enter something --> ')
if len(s) < 10:
raise MyException(len(s), 10)
except MyException as x: # 捕获MyException异常
print('MyException: The input was of length %d, \
but we expect length at least %d' % (x.length, x.atleast))
else:
print('No exception was raised.')
输入1234 / qweiutieuiut
输出
3、finally关键字
如果我们不管是否有异常,都执⾏某段代码,可以使用finally关键字
def test():
try:
print('to do stuff')
raise Exception('hehe') # 抛出异常程序就终止了
except Exception:
print('process except')
print('to return in except')
return 'except'
finally: # 即使有异常,把没有做的工作做完,不管有没有异常都会执行
print('to return in finally')
return 'finally'
res = test()
print('test finally function returns : ' + res)
运行结果