学习python仅此一篇就够了(异常,模块与包)

发布时间:2024年01月17日

Python异常,模块与包

什么是异常

当检测到一个错误时,python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的异常。

f = open("D:/12a.txx", "r", encoding="UTF-8")
   f = open("D:/12a.txx", "r")
        ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:/12a.txx

捕获异常

基本语法:

try:
	可能发生错误的代码
except:
	如果出现异常执行的代码
	
try:
	print(name)
except  NameError as e::
	print("name变量名称未定义错误")
try:
    f = open("D:/12a.txx", "r", encoding="UTF-8")
except:
    f = open("D:/12a.txx", "w", encoding="UTF-8")
    
try:
    print(name)
except NameError as e:
    print("name未定义")
    print(e) #name 'name' is not defined
    

try:
    1 / 0
except (NameError,ZeroDivisionError) as a:
    print(a) #division by zero
    
 #捕获所有异常   
try:
    1 / 0
except Exception as w:
    print("出错了")
    print(w) #division by zero

finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:
    f = open("D:/12a.txx", "r", encoding="UTF-8")
except:
    f = open("D:/12a.txx", "w", encoding="UTF-8")
else:
    print("没有异常")
finally:
    f.close()

异常的传递

异常是具有传递性的,当函数func()1中发生异常,并且没有捕获处理这个异常的时候,异常就会传递到函数func2()中,当func2()也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。

def func1():
    print("开始异常")
    num = 1 / 0
    print("结束执行")

def func2():
    print("func2开始执行")
    func1()
    print("func2结束执行")

def main():
    try:
        func2()
    except Exception as s:
        print(f"异常是{s}") #异常是division by zero
main()

自定义模块

?

import module
module.test(1,2)

什么是python包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个init.py文件,该文件可用于包含多个模块文件;

从逻辑上看,包的本质依然是模块;

import bao.mpdule1
bao.mpdule1.test(1,2)

?

文章来源:https://blog.csdn.net/m0_66011019/article/details/135653238
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。