Python Module/Excepion

本文介绍了Python中的模块管理和异常处理机制。模块管理包括模块的创建、导入、搜索路径及包的概念;异常处理部分则详细解释了try...except语句、异常抛出、预定义清理操作等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Module

Module:a file containing Python definitions and statements,文件名是module_name.py, module的作用是便于代码的维护和共享,在module内部可以用name来引用module名

Import

import module_name使用module_name.item_name引用item_name
from module_name import item_name使用item_name引用item_name
出于效率原因,一个module在interpreter session中只会被加载一次,如果module变了,可以reload(module_name)
import A.B.C 引用时必须通过完整名称A.B.C.subitem(x1,x2), 此种方式只能引入包或模块,即C只能是package or module
from A.B import C 可直接引用C,即不用前缀,此种方式可引入包/模块/函数/类/变量,即C可以为package/module/function/class/variable
package内部引用可使用相对引用,dot.表示当前pakage, double dot..表示父package,但不能在main中使用relative import
除了包含函数定义外,模块也可以包含可执行语句,这些语句一般用来初始化模块,它们仅在第一次被导入的地方执行一次

Main Module

python module_name.py 这样执行在module内部变量name==”main“,因此如果在module文件最后加上 if name == “main“: python_statement 则此module即可以被import,也可以作为executable script, 这为module提供一个便于用户使用的接口,同时也便于单元测试

Search Path

module的搜素路径:1)built-in module 2) sys.path目录,sys.path组成部分包括:当前目录,PYTHONPATH,Python默认安装路径
与module_name.py同目录下的module_name.pyc是其编译版本,pyc文件中记录了py的修改时间,如果两者时间不匹配则pyc会被忽略,pyc是平台独立的,可在不同架构机器之间共享,pyc/pyo文件不会比py文件更快,只是加载的时候更快
stardard module不是Python语言内核的一部分,但已内置于interpreter,sys.ps1/sys.ps2定义了第一/第二提示符
dir(module_name)列出module_name下定义的所有名字,包括variables,modules,functions
dir()则列出当前module下定义的名字,但并不列出built-in names,可用dir(built-in)列出内部变量

Package

Package:Module名称空间,Module Collections,package目录下应该有一个文件init.py以便于interpreter把此目录作为package,init.py可为空,也可包含package初始化代码,或设置all变量,all定义了从此package import *时会导出的module

Exception

异常:try…expresion except ExceptionType [as exception_instance] [else…] [finally clean-up action]
ExceptionType为tuple时可catch多种类型异常,若想分别处理各种异常,则需要多个excepty语句,最后一个可以通配前面未捕获异常;else语句在没有发生异常时会执行,这样使try…except只捕获需要保护的语句
raise:抛出异常,异常可带参数,参数个数由异常类型决定,exception_instance.args可引用异常参数
UDE: User Defined Excepion须继承自Exception,一般定义几个属性表明发生的错误信息
Predefined Clean-Up Action: File object具有定义好的clean up action, with open(‘file’) as f会自动关闭f,具有Predifined Clean-Up Action的类会在文档中说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值