width connecttion.cursor() as cursor和cursor=connecttion.cursor()有什么不同呢?

唐佳 发布于 2017/04/01 15:02
阅读 122
收藏 0

图中标红的width connecttion.cursor() as cursor和cursor=connecttion.cursor()有什么不同呢?

加载中
0
秦maoren
秦maoren

with是一种语法,实现了上下文管理协议(Context Management Protocol), 

只要对象实现了 方法 __enter__() 和 __exit__() 就可以使用此语法, 

好处:with下面方法体中的内容不管执行是否失败(包括异常).都会运行__exit__(), 通常__exit__()用于资源释放等操作

width connecttion.cursor() as cursor:

        print("hello")

 

可以翻译为:

cursor=None

try:

    cursor=connecttion.cursor()

    print("开始数据库操作")

except Exception:

    print('process except')    

finally:
      print('释放cursor占用的数据库资源')

---------------------------------------------------

cursor=connecttion.cursor() 只是一种赋值语句

0
秦maoren
秦maoren

参考

==

* [浅谈 Python 的 with 语句](https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/)

返回顶部
顶部