目录
9、__all__=[](仅仅限制*的内容,不影响手动导入函数功能)
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()
- 控制*能打开的模块