Python基础-DAY14

包(模块包) package

  包是将模块以文件夹的形式组织分组的管理办法

包的作用:

  1)将一系列模块进行分类管理,有利于防止命名冲突

  2) 可以在需要时加载一个或部分模块而不是全部模块

 

   import 子包:

 

包示例:

包名为: mypack

mypack/

    __init__.py

    menu.py

    games/

        __init__.py

        contra.py

        supermario.py

        tanks.py

    office/

        __init__.py

        excel.py

        word.py

        powerpoint.py

 

包的导入:

  同模块的导入方法:

    import 包名 [as 包别名]

    import 包名.模块名 [as 模块新名]

    import 包名.子包名.模块名 [as 模块新名]

 

    from 包名 import 模块名 [as 模块新名]

    from 包名.子包名 import 模块名 [as 模块新名]

    from 包名.模块名 import 变量名 [as 变量新名]

 

    from 包名 import *

    from 包名.模块名 import *

    ....

 

搜索顺序:

1) 当前路径

2) sys.path

 

__all__属性:

作用:

  用来记录哪些模块或子句需要导入

  当用from 包 import * 语句导入时, 只查找__all__列表内的所有模块或子包

位置:要写在__init__.py中

 

__init__.py的作用:

1. 在包内添加文档字符串

2. 可以设置包的属性(__all__属性)

 

 

python调试器 pdb 模块

pdb模块:

  作用:

    用来调试程序

    1)让程序单步执行,并跟踪程序的执行流程

    2) 在运行时查看变量的值

在命令行加载pdb模块的方法:

   $ python3 -m pdb 主模块文件

   例:

   $ python3 -m pdb student_info.py

 

pdb的调试命令:

  q/quit 退出pdb调试器

  l/list 列表源码

  h/help 查看帮助

  n/next 执行下一条语句

  p      执行表达式并返回结果

  s/step 进入到函数的内部,直到此函数返回

  r/return 持续运行,直到此函数返回

  c/cont/continue 继续执行,直到下一个断点

  b/break [断点位置] 设置断点

  cl/clear [断点号] 清除断点

  w/where 打印函数调用栈

 

 

pdb断点的设置方法:

  1) 文件名 : 行号

     (Pdb) b student_info.py : 35

  2) 当前文件行号

     (Pdb) b 44

  3) 函数名

     (Pdb) b output_student

  4) 模块名.函数

     (Pdb)

     b games.play

 

 

异常(第一部分)  (exception)

 

什么是错误

  指由于逻辑或语法等原因,程序无法正常执行.

 

错误的特点:

  有些错误无法预知

 

什么异常:

  异常是程序出错时标识的一种状态

  当异常发生时,程序不会再向下执行,而转去调用此函数地方待处理此错误并恢复为正常状态

 

作用:

  通知上层调用有错误产生需要处理

  用异常作为信号通知调用者

 

 

try 语句

  两种语法:

    1) try-except语句

    2) try-finally语句

 

1) try-except语法

    try:

        可能触发异常的语句:

    except 错误类型 1 [as 变量1]:

        异常处理语句1

    except 错误类型 2 [as 变量2]:

        异常处理语句2

    except (错误类型3, 错误类型4,...) [as 变量4]:

        异常处理语句3

    ....

    except:

        其它异常处理语句

    else:

        末发生异常语句

    finally:

        最终语句

 

作用:

  捕获异常,将程序转为正常流程

 

try-except语法说明:

  1. as 子句用于绑定错误对象的变量,可以省略

  2. except 子句可以有一个或多个,但至少要有一个

  3. else子句最多只能有一个,也可以省略不写

  4. finally子句最多只能有一个,也可以省略不写

 

 

 

try-except执行流程:

  1) 当try内的语句无错误时,执行正常流程,然后执行else子句和finally子句

  2) 当try内的语句有异常发生时,所有正常流程终止,转去寻找包含此语句的try中的except部分。

     如果类型匹配则转为正常流程,否则异常状态会向上层传递

  3) 无论是否有异常发生,finally子句永远会执行

 

 

Python常用的错误类型

ZeroDivisionError  除(或取模)零

StopIteration      迭代器没有更多的值

ImportError        导入模块对象失败

GeneratorExit      生成器发生异常通知退出

IndexError         序列中没有此索引

IndentationError   缩进错误

ValueError         传入无效的参数

NameError          末声明/初始化对象

AttributeError     对象没有这个属性

AssertionError     断言语句失败

IOError            输入/输出操作失败

 

 

try-finally 语句

语法:

  try:

      可能触发异常的语句

  finally:

      最终语句

 

说明:

  finally子句不可以省略

  一定不存在except子句

 

作用:

  通常用try-finally语句来做触发异常时必须要处理的事情

注:

  try-finally语句不会改变程序的(正常/异常)状态

 

 

 

raise 语句:

作用:

  生成一个错误, 让程序进入异常状态

 

语法:

  raise 异常类型

  或

  raise 异常对象

 

 

assert 语句 (断言语句)

语法:

    assert 真值表达式, 错误数据(通常是字符串)

 

作用:

  当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态

等同于:

  if not 真值表达式:

      raise AssertionError(错误数据)

 

猜你喜欢

转载自blog.csdn.net/qq_41797451/article/details/81319737