当前位置: 首页 > news >正文

python中的异常-模块-包

文章目录

  • 异常
    • 异常的定义
    • 异常捕获
      • 语法
        • 捕获常规异常
        • 捕获指定异常
        • 捕获多个异常
        • 捕获所有异常
        • 异常else
        • 异常finally
    • 异常传递
    • 总结
  • 模块
    • 概念
    • 导入
    • 自定义模块及导入
      • main方法
      • all变量
    • 总结
    • 自定义包
      • 定义
      • pycharm中建包的基本步骤
      • 导入方式
    • 第三方包

异常

异常的定义

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

异常捕获

当遇到bug时,又不希望程序停止,这时候就需要 对异常进行捕获。

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

语法

捕获常规异常

try:
可能发生的错误
except:
如果异常了要执行的代码

在这里插入图片描述

捕获指定异常

try:
可能发生的错误
except 具体异常类 as e:
如果异常了要执行的代码

在这里插入图片描述

注意
①如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
②一般try下方只放一行尝试执行的代码

捕获多个异常

try:
可能发生的错误
except (具体异常类1,具体异常类2) as e:
如果异常了要执行的代码

在这里插入图片描述

捕获所有异常

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码

在这里插入图片描述

异常else

else表示的是如果没有异常要执行的代码。

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码
else:
else部分执行的代码
在这里插入图片描述

异常finally

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

try:
可能发生的错误
except Exception as e:
如果异常了要执行的代码
else:
else部分执行的代码
finally:
finally部分执行的代码

异常传递

异常是具有传递性的。
fun3调用fun2,fun2调用fun1,,当函数fun1中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数fun2,当fun2也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。当所有函数都没有捕获异常的时候,程序就会报错。

总结

java也存在异常,语法上捕获异常为try…catch

模块

概念

Python模块(Module),是一个Python文件,以.py结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码。

模块的作用:python中有很多各种不同的模块,每一个模块都可以帮助我们快速的实现一些功能,比如实现和时间相关的功能就可以使用time模块。我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能。简而言之:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

导入

模块在使用前需要先导入,导入的语法如下:
[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]
常用的组合形式如:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import
  • import 模块名 as别名
  • from 模块名 import 功能名 as 别名

注意
fom可以省略,直接 import 即可
as别名可以省略
通过"."来确定层级关系
模块的导入一般写在代码文件的开头位置

自定义模块及导入

每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则

main方法

在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在文件中添加一些测试信息,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行测试函数的调用。为了解决这个问题,需要设置该测试方法不能执行。python中使用 if name == ‘main’: 标识某个方法只能在该文件内被执行,其他地方导入这个文件时不执行。

在这里插入图片描述

当导入多个模块的时候,且模块内有同名功能。当调用这个同名功能的时候,调用到的是后面导入的模块的功能。

all变量

如果一个模块文件中有all变量,当使用from xx import *导入时,只能导入这个列表中的元素

在这里插入图片描述

总结

java中有类的导入。python模块可以理解为多个类的集合。python中包>模块>类。

自定义包

定义

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

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

包的作用
当我们的模块文件越来越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块

pycharm中建包的基本步骤

[New]->[Pyhon Package]->输入包名->[OK]->新建功能模块

注意:新建包后,包内部会自动创建”init.py文件,这个文件控制着包的导入行为

导入方式

方式一:
import 包名.模块名

方式二:
from 包名 import *

注意:
可以在 init.py 文件中使用all变量控制可导入的模块

第三方包

方式1
pip install 包名

方式2
使用pycharm安装

相关文章:

  • 基于Spring Boot的农事管理系统设计与实现(LW+源码+讲解)
  • Vue 和 React 响应式的区别
  • 波兰发布世界首个双足肌肉骨骼机器人,细节高度模拟人类生物特征
  • 远离手机APP——数字排毒,回归生活本真
  • 边缘安全加速(ESA)套餐
  • 图解MySQL【日志】——Binlog
  • Web Scraper,强大的浏览器爬虫插件!
  • 前端开发的适配方案
  • grafana 忘记登陆密码
  • 【学习】验证数独的正确性
  • 从零开始玩转TensorFlow:小明的机器学习故事 2
  • [C++ ]使用std::string作为函数参数时的注意事项
  • 【Java 优选算法】位运算
  • Vmware虚拟机Ubantu安装Docker、k8s、kuboard
  • 银行IT治理——安全架构定义
  • 企业组网IP规划与先关协议分析
  • overflow-x: auto 使用鼠标实现横向滚动,区分触摸板和鼠标滚动事件的方法
  • 【自学笔记】Spring Boot框架技术基础知识点总览-持续更新
  • STM32-温湿度上传OneNET项目
  • 机器学习 - 衡量模型的特性
  • 阿联酋与美国达成超过2000亿美元协议
  • 昆明公布3起经济犯罪案例:一人持有820余万假美元被判刑十年
  • 加强战略矿产出口全链条管控将重点开展哪些工作?商务部答问
  • 马上评|“为偶像正名”的正确做法是什么
  • 中国海警舰艇编队5月14日在我钓鱼岛领海巡航
  • 观察|“双雄”格局下电池制造商如何生存:加码不同技术、抢滩新赛道