python(七)

一 、自定义包和导入自定义包

  以包名建立一个 包名相同的文件,里面至少包含__init__.py文件。__init__.py可以是空文件,也可以有Python代码。因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字,调用包就是执行包下的__init__.py文件。

  之后,我们可以在包里(文件夹下)定义其他模块,如A-->A.py、B-->B.py等等。

  当我们要使用这些包里的模块时,自定义的包必须在使用的py文件同级目录下,之后我们可以通过"import xx.xx"的方式导入到工程里。这里我就定义了一个app包,在run.py中使用,如下:

 二、with语句

  不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源。能自动处理上下文环境产生的异常,抛出异常时,exit()方法被执行。

try: 
   f = open('xxx')
except:
   print('fail to open')
   exit(-1)
finally: f.close() 

等价于

with open("flag.txt") as file:
    data = file.read()

  with-as表达式简化了写finally的工作。

底层过程:

  1. with后面的语句被求值后,返回对象的“__enter__()”方法被调用,这个方法的返回值将被赋值给as后面的变量;
  2. with后面的代码块全部被执行完之后,将调用该对象的“__exit__()”方法。

详细运行过程:

  1. __enter__()方法被执行;
  2. __enter__()方法的返回值,赋值给变量;
  3. 执行代码块;
  4. __exit__()方法被调用。

 三、assert语句

  用于判断一个表达式,在表达式条件为 false 的时候触发异常。

assert expression

 等价于

if not expression:
    raise AssertionError

  如果不满足条件则直接触发异常,不必执行接下来的代码

 

posted @ 2021-06-29 12:01  An2i  阅读(34)  评论(0)    收藏  举报