python 做网站 数据库,百度官网网站首页,网站标题栏怎么修改,做百度联盟用什么做网站with 语句使用于对资源进行访问的场合,确保不管使用过程是否发生异常都会执行必要的清理操作,释放资源,比如文件使用后自动关闭/线程中锁的自动获取和释放with open(#xff11;.txt) as file:data file.read()使用with,能够减少冗长,还能自动处理上…with 语句使用于对资源进行访问的场合,确保不管使用过程是否发生异常都会执行必要的清理操作,释放资源,比如文件使用后自动关闭/线程中锁的自动获取和释放with open(.txt) as file:data file.read()使用with,能够减少冗长,还能自动处理上下文环境产生的异常with 工作原理()紧跟with后面的语句被求值后返回对象的__enter__()方法被调用这个方法的返回值将被赋值给as后面的变量()当with后面的代码块全部被执行完之后将调用前面返回对象的__exit__()方法。with工作原理代码示例class Sample:def __enter__(self):print(进入 with)return selfdef __exit__(self, exc_type, exc_val, exc_tb):print(退出 with)def xxx(self):print(读取文件)with Sample() as sample:print(__enter__的返回值: , sample)sample.xxx()结果进入 with__enter__的返回值: __main__.sample object at读取文件退出 with可以看到整个运行过程如下()__enter__()方法被执行()__enter__()方法的返回值在这个例子中是self赋值给变量sample()执行代码块__enter__的返回值: __main__.sample object at( 4 )执行方法 xxx()( 5 )__exit__()方法被调用【注】exit()方法中有个参数 exc_type, exc_val, exc_tb这些参数在异常处理中相当有用。exc_type 错误的类型exc_val 错误类型对应的值exc_tb 代码中错误发生的位置总结实际上在with后面的代码块抛出异常时exit()方法被执行。开发库时清理资源关闭文件等操作都可以放在exit()方法中。总之with-as表达式极大的简化了每次写finally的工作这对代码的优雅性是有极大帮助的。如果有多项可以这样写With open(1.txt) as f1, open(2.txt) as f2:do something