python的异常、模块和包相关知识点复习

目录

 1、捕获常规异常

2、捕获指定的异常

3、捕获多个异常

4、捕获所有异常

5、finally执行

6、异常的传递

7、python 模块

 8、if __name__ == '__main__'

9、__all__=[](仅仅限制*的内容,不影响手动导入函数功能)

 9、自定义包


 1、捕获常规异常

# 1、捕获常规异常
try:
    open("C:/Users\\admin\Desktop\异常.txt","r",encoding="UTF-8")
except:
    print("此处出现了异常,已经通过文件写入方式进行捕获")
    open("C:/Users\\admin\Desktop\异常.txt","w",encoding="UTF-8")

2、捕获指定的异常

# 捕获指定的异常
try:
    print(name)
except NameError as e:
    # e中具体记录了异常的信息
    print("出现了变量为定义的异常")
    print(e)

3、捕获多个异常

#捕获多个异常
try:
    print(name)
    # 1/0
except(NameError,ZeroDivisionError) as e:
    print("出现了变量为定义或者除以0的异常")
    print(e)

 

4、捕获所有异常

try:
    # print(name)
    1/0
except Exception as e:
    print("出现了变量为定义或者除以0的异常")
    print(e)

5、finally执行

#finally无论是否异常都要执行的代码
try:
    f=open('test.txt','r')
except Exception as e:
    f=open('text.txt','w')
else:
    print("没有异常")
finally:
    f.close()

6、异常的传递

# 异常的传递
def func1():
    print("这是func1的开始")
    1/0
    print("这是func1的结束")
def func2():
    print("这是func2的开始")
    func1()
    print("这是func2的结束")
def main():
    try:
        func2()
    except Exception as e:
        print(e)
main()

7、python 模块

  • 模块的导入
#1、模块的导入
import time
time.sleep(10)
# 导入time的sleep功能(函数),不需要time.
from time import sleep
print('开始')
sleep(3)
print("结束")

from time import *
#  *表示全部的意思
sleep(5)
#使用as加上别名
import time as t
t.sleep(2)
print('2秒过去了')
from time import sleep as tt
tt(5)
print("5秒又过去了")

  • 自定义模块
# 2、自定义模块
import my_model
my_model.add(1,2)

  •  自定义模块的覆盖1
    def add(a,b):
        print(a+b)
    def add(a,b):
        print(f'{a}+{b}={a+b}')
    import my_model
    my_model.add(1,2)

  •  自定义模块的覆盖2​​​​​​
from my_model import add
from my_model2 import add
add(1,2)

 

 8、if __name__ == '__main__'

def add(a,b):
    print(f'{a}+{b}={a+b}')

if __name__ == '__main__':
    add(1,2)

9、__all__=[](仅仅限制*的内容,不影响手动导入函数功能)

# __all__=['add']
def add(a,b):
    print(f'{a}+{b}={a+b}')

def dec(a,b):
    print(f'{a}-{b}={a-b}')

if __name__ == '__main__':
    add(1,2)

​​​​​​​

__all__=['add']
def add(a,b):
    print(f'{a}+{b}={a+b}')

def dec(a,b):
    print(f'{a}-{b}={a-b}')

if __name__ == '__main__':
    add(1,2)

 

 9、自定义包

# 创建包,导入自定义的包中的模块
import my_package.my_model
import my_package.my_model2
my_package.my_model.info_print()
my_package.my_model2.info_print2()

from my_package import my_model
from my_package import my_model2
my_model.info_print()
my_model2.info_print2()

from my_package.my_model import info_print
from my_package.my_model2 import info_print2
info_print()
info_print2()

  •  控制*能打开的模块​​​​​​​​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coleak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值