python的异常和包

1. 异常

1.1 异常的写法

1.1.1 捕获所有异常

try:
  	可能发生异常的代码
except:
  	如果出现异常执行的代码
else:
  	没有异常执行的代码
finally:
  	无论是否异常都要执行的代码
  • else:当没有异常时会执行的代码
  • finally:无论有没有异常都会执行的代码

1.1.2 捕获指定异常

except 异常类型:
  	代码

except (异常类型1,异常类型2) as xx:
	代码
try:
    f = open('test.txt', 'r')
except Exception as result:
    f = open('test.txt', 'w')
else:
    print('没有异常,真开心')
finally:
    f.close()

1.2 自定义异常

# 自定义异常类,继承Exception
class ShortInputError(Exception):
    def __init__(self, length, min_len):
        self.length = length
        self.min_len = min_len

    # 设置抛出异常的描述信息
    def __str__(self):
        return f'你输入的长度是{self.length}, 不能少于{self.min_len}个字符'

def main():
    try:
        con = input('请输入密码:')
        if len(con) < 3:
            raise ShortInputError(len(con), 3)
    except Exception as result:
        print(result)
    else:
        print('密码已经输入完成')


main()

2. 模块

2.1 导入模块

  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

2.2 制作模块

  • python中每一个python文件都可以作为一个模块

2.3 测试自制模块

  • 在自制模块中添加测试代码
def testA(a, b):
    print(a + b)

# 只在当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行testA函数调用
if __name__ == '__main__':
    testA(1, 1)

2.4 模块定位顺序

  1. 当前目录
  2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
  3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

2.5 __all__

  • 如果一个模块文件中有__all__列表变量,当使用from xxx import *导入时,只能导入这个列表中的元素。
__all__ = ['testA']

def testA():
    print('testA')

def testB():
    print('testB')

3. 包

3.1 制作包

  • 新建包后,包内部需要创建一个名称为__init__.py文件,这个文件控制着包的导入行为。

3.2 导入包

3.2.1 方式一

import 包名.模块名

包名.模块名.目标

3.2.2 方式二

  • 必须在__init__.py文件中添加__all__ = [],控制允许导入的模块列表。
from 包名 import *
模块名.目标
上一篇:九、模块和包_2.__all__


下一篇:极简SpringBoot指南-Chapter02-Spring依赖注入的方式