2
回答
width connecttion.cursor() as cursor和cursor=connecttion.cursor()有什么不同呢?
极速云服务器,低至1.04元/天>>>   

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

举报
唐佳
发帖于8个月前 2回/86阅

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() 只是一种赋值语句

顶部