day15-模块和异常

一.模块

  1. 什么是模块

    Python中一个py文件就是一个模块。

    模块分为系统模块和自定义模块。

  2. 怎么使用模块 - 怎么在一个模块中去使用另外一个模块中的内容

    注意:1)如果一个模块中的内容想要被别的模块使用,那么这个模块的名字必须符合变量名的要求。

    ​ 2)符合命名要求的模块中,只有全局变量可以被别的模块使用。

  3. 怎么导入模块 - 要使用别的模块中的内容,必须先导入

    1)import 模块名 - 导入指定模块,导入后可以通过’模块名.xxx’的方式去使用模块中所有的全局变量。

    2)from 模块名 import 变量名1, 变量名2,… - 导入指定模块,导入后可以直接使用import后面所有的全局 变量。

    3)from 模块名 import * - 导入指定模块,导入后可以直接使用模块中所有的全局变量。

    4)import 模块名 as 新模块名 - 导入模块的时候给模块重命名。

    5)from 模块名 import 变量名1 as 新变量名1,变量名2,… - 重新给指定变量命名。

    1. 导入方式1import 模块名
    import test
    print(test.a)
    print(test.x)
    test.func1()
    
    import functools
    functools.reduce()
    
    2. 导入方式2from 模块名 import 变量名1, 变量名2, ...
    from test import a, func1
    print(a)
    # print(x)      # 报错:NameError: name 'x' is not defined!
    func1()
    
    
    3. 导入方式3from 模块名 import *
    from test import *
    print(a)
    print(x)
    func1()
    
    4.模块重命名
    import 模块名 as 新模块名
    test = 100
    import test as test1
    print(test1.a, test1.x)
    test1.func1()
    
    5.变量重命名
    from test import a, x as t_x
    print(t_x)
    print(a)						
    

二.导入模块的原理

  1. 导入原理

    当代码执行到导入模块的操作的时候,系统会自动进入被导入的模块,将模块中的代码全部执行一遍。

    import和from-import在导入模块的时候会自动检测模块是否重复导入,如果已经导入过,不会重复导入。

  2. 阻止导入

    from downloadMovies import download
    
    download('哈利波特1')
    print(f'05的__name__:{__name__}')
    
    if __name__ == '__main__':
        pass
    

三.异常捕获

  1. 异常

    程序在执行过程中报错,这个叫程序就出现异常(错误 == 异常)。

    异常的出现会终止程序的运行。

  2. 捕获异常 - 让程序在出现异常的时候不报错,并且可以继续执行

    1)捕获异常的使用场景:命名知道某个位置可能会出现异常,但是又无法(不愿意)通过修改代码来避免异常,还想在异常出现的时候继续执行,就可以对这段 代码进行异常捕获。

    2)语法:

    ​ 结构1:

    try:
        代码段1(需捕获异常的代码段)
    except:
        代码段2(捕获到异常后会执行的代码)
    else:
        代码段3(没有捕获到)
    其他代码
    

    ​ 执行过程:先执行代码段1,如果代码段1没有异常直接执行其他代码;如果代码段1出现异常,马上执行代码段2,再执行其他代码。

    ​ 结构2 - 捕获特定异常

    try:
        代码段1(需要捕获异常的代码)
    except 异常类型:
        代码段2(捕获到指定异常后执行的代码)
    
      结构3: - 同时捕获多种异常,不同类型的异常做相同的处理
    
    try:
        代码段1(需要捕获异常的代码)
    except (异常类型1, 异常类型2,...):
        代码段2(捕获到指定异常后执行的代码)
    

    ​ 结构4: - 同时捕获多种异常,根据不同类型的异常做不同的处理

    try:
        代码段1(需要捕获异常的代码)
    except 异常类型1:
        代码段11(捕获到指定异常后执行的代码)
    except 异常类型2:
        代码段22(捕获到指定异常后执行的代码)
    except 异常类型3:
        代码段33(捕获到指定异常后执行的代码)
    ...
    
  3. 关键字finally(了解)

    try:
        代码段1(需要捕获异常的代码段)
    except 异常类型:
        代码段2(捕获到异常后会执行的代码)
    finally:
        代码段3(无论前面的代码怎么执行的,代码段3都会执行)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值