异常处理
try:
print(num)
print("*********")
except:
print("捕获到了异常")
print("##############")
打印结果:
捕获到了异常
##############
try:
11/0
print(num)
print("*********")
except (NameError,FileNotFoundError):
print("捕获到了异常")
except Exception as ret:
print("只要上面的except没有找到异常,这个异常一定能捕获")
print(ret)
else:
print("没有异常才会执行的效果")
finally:
print("不管有没有产生异常,这句话总会执行")
print("##############")
运行结果:
只要上面的except没有找到异常,这个异常一定能捕获
division by zero
不管有没有产生异常,这句话总会执行
##############
异常传递
抛出自定义异常
image.png异常处理中抛出异常
image.png模块
#导入其他模块,可以直接调用其他模块里的方法
import sendmsg
sendmsg test1()
#导入某个模块的某个方法
from sendmsg import test1, test2
test1()
也可以使用这个导入所有的东西
from sendmsg import *
import time as tt
tt.sleep(3)
name:是系统自定义的变量
print("name")
如果是python自己调用,他相当于是一个字符串,如果别人导入此模块,则打印的是这个模块的名字
if __name__ =="__main__"
test()
test1()
all
只要模块里面有all,则加入此列表的方法被别的模块调用时才可以使用,否则,无法调用
__all__ = ["test1"]
def testxjx():
print("xjx")
def test1():
print("1111111")
def test2():
print("22222222")
如果文件结构是下面这样,就不能通过import 文件夹名 导入并调用文件。
此时只要给TestMsg下新建一个 init.py ,如下结构,此时这个文件夹就成为一个包。
image.png
然后在init.py文件中写入:
__all__ = ["sendmsg"]
from . import sendmsg #用这个python2和python3都可以用
print("hahahahha") #直接导入包时,会先执行包里的内容
此时才可以使用sendmsg这个模块,并调用里面的方法
模块的发布
如果你想把自己写的包安装到电脑系统上,以方便任何程序调用,则:
1、在和包同一个路径下建立一个文件
#文件内容
from distutils.core import setup
setup(name = "xjx",version = "1.0",description = "xjx's module",author = "xjx",py_moudles = ['TestMsg.sendmsg','TestMsg.receivemsg'])
#然后在命令行里构建
python3 setup.py build
image.png
生成发布压缩包:
#就会多一个 .tar.gz 包
python3 setup.py sdist
解压:
安装:
python3 setup.py install
然后就可以在所有的
程序中直接import使用
网友评论