笔记:python基础之包&异常处理

:把解决一类问题的模块放在同一个文件夹里。

  • 如想要导入包就能使用其中的功能模块,则在__init__.py文件中导入各功能模块,再在模块的__init.py__中导入其中的函数。

在__init__.py中:
from . import A: ‘.’代表从当前路径导入,缺点:只能导入包内的模块。

使用绝对路径 不管在包内部还是外部 导入了就能用
不能挪动,但是直观

from dir import glance
glance.db.models.register_models('mysql')
glance.api.policy.get()

相对路径
可以随意移动包 只要能找到包的位置,就可以使用包里的模块
包里的模块如果想使用其它模块的内容只能使用相对路径,使用了相对路径就不能在包内直接执行了

from dir import glance
glance.api.policy.get()

异常处理

  • else : 没有异常的时候执行else中的代码
  • finally : 不管代码是否异常,都会执行
  • finally和return相遇的时候 依然会执行
案例1:
try:
    print('1111')
    # 1/0
    print('2222')
    # name
    # 2+'3'
    # [][3]
    # {}['k']
    ret = int(input('number >>>'))
    print(ret*'*')
except ValueError:
    print('输入的数据类型有误')
except Exception:
    print('你错了,老铁')
else:
    print('没有异常的时候执行else中的代码')

案例2:
def func():
    try:
        f = open('file','w')
        ''''''
        return True
    except:
        return False
    finally:
        print('执行finally了')
    f.close()

print(func())

程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
使用try和except就能处理异常

  • try是我们需要处理的代码
  • except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
  • except支持多分支

有没有一个能处理所有错误的类型 : Exception

  • 有了万能的处理机制仍然需要把能预测到的问题单独处理
  • 单独处理的所有内容都应该写在万能异常之前
  • 函数里做异常处理用,不管是否异常去做一些收尾工作

try:
main()
except Exception:
pass

try:
    print('1111')
    # 1/0
    print('2222')
    # name
    # 2+'3'
    # [][3]
    # {}['k']
    ret = int(input('number >>>'))
    print(ret*'*')
except Exception as error:
    print('你错了,老铁',error)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值