异常,模块和包

"""
演示捕获异常
"""
# 基本捕获语法
try:
    f=open("D:/abc.txt","r",encoding="utf-8")
except:
    print("出现异常,将open的模式改为w模式去打开")
    f=open("D:/abc.txt","w",encoding="utf-8")

# 捕获指定的异常
try:
    print(name)
except NameError as e:
    print("出现了变量未定义的异常")

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

# 未正确设置捕获异常类型,将无法捕获异常

# 捕获所有异常
try:
    f = open("D:/abc.txt", "r", encoding="utf-8")
except Exception as e:
    print("出现异常了")
else:
    print("good,没有异常")

finally:
    print("不论是否有异常,我都要执行")
    f.close()

演示异常的传递性
定义一个出现异常的方法
def func1():
    print("func1 开始执行")
    num=1/0 # 除以0的异常
    print("func1 执行结束")

# 定义一个无异常的方法
def func2():
    print("func2 开始执行")
    func1()
    print("func2 执行结束")

# 定义一个方法,调用上面的方法
def mian():

    try:
       func2()
    except Exception as e:
        print(f"出现异常了,异常的信息是{e}")

mian()

# 演示Python的模块导入

# 使用import导入time模块使用sleep功能(函数)
import time # 导入python内置的time模块(time.py这个文件)
print("你好")
time.sleep(5) # 通过,就可以使用模块内部的全部功能(类,函数,变量)
print("我好")

# 使用from导入time模块使用sleep功能(函数)
from time import sleep
print("你好")
sleep(5)
print("我好")

# 使用 * 导入time模块的全部功能
from time import *     # * 表示全部的意思
print("你好")
sleep(5)
print("我好")

# 使用as给特定功能加上别名
import time as t
print("你好")
t.sleep(5)
print("我好")

from time import sleep as sl
print("你好")
sl(5)
print("我好")

"""
演示自定义模块
"""
# 导入自定义模块使用
import my_module1
my_module.test(1,2)

from my_module1 import test
test(1,2)

# 导入不同模块的自定义功能
from my_module1 import test
from my_module2 import test
test(1,2)

# __main__变量
def test(a,b):
    print(a+b)

if __name__=="__main__":
    test(1+2)


# __all__变量

__all__=["test_a"]

def test_a(a,b):
    print(a+b)

def test_b(a,b):
    print(a-b)


"""
演示创建Python包
"""

# 创建一个包
#导入自定义的包中的模块
import my_package.my_module1
import my_package.my_module2

my_package.my_modoule1.info_print1()
my_package.my_modoule1.info_print2()

from my_package import my_modoule1
from my_package import my_modoule1

my_modoule1.info_print1()
my_modoule1.info_print2()

from my_package.my_modoule1 import info_print1()
from my_package.my_modoule1 import info_print2()

info_print1()
info_print2()


# 通过__all__变量,控制import*

from my_package import *
my_modoule1.info_print1()
my_modoule1.info_print2()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值