日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中with语句的使用

發布時間:2024/4/17 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中with语句的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

with 語句是從 Python 2.5 開始引入的一種與異常處理相關的功能(2.5 版本中要通過 from __future__ import with_statement 導入后才可以使用),從 2.6 版本開始缺省可用(參考 What's new in Python 2.6? 中 with 語句相關部分介紹)。with 語句適用于對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的“清理”操作,釋放資源,比如文件使用后自動關閉、線程中鎖的自動獲取和釋放等。

術語

要使用 with 語句,首先要明白上下文管理器這一概念。有了上下文管理器,with 語句才能工作。

下面是一組與上下文管理器和with 語句有關的概念。

上下文管理協議(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持

該協議的對象要實現這兩個方法。

上下文管理器(Context Manager):支持上下文管理協議的對象,這種對象實現了

__enter__() 和 __exit__() 方法。上下文管理器定義執行 with 語句時要建立的運行時上下文,

負責執行 with 語句塊上下文中的進入與退出操作。通常使用 with 語句調用上下文管理器,

也可以通過直接調用其方法來使用。

運行時上下文(runtime context):由上下文管理器創建,通過上下文管理器的 __enter__() 和

__exit__() 方法實現,__enter__() 方法在語句體執行之前進入運行時上下文,__exit__() 在

語句體執行完后從運行時上下文退出。with 語句支持運行時上下文這一概念。

上下文表達式(Context Expression):with 語句中跟在關鍵字 with 之后的表達式,該表達式

要返回一個上下文管理器對象。

語句體(with-body):with 語句包裹起來的代碼塊,在執行語句體之前會調用上下文管

理器的 __enter__() 方法,執行完語句體之后會執行 __exit__() 方法。

格式

with open(path,操作方式,encoding='utf-8') as file:data = file.read()...# 進行文件的其他操作
# 縮進取消,退出with語句塊,表明文件操作結束,python自動關閉文件

特點

  • with語句打開文件,并指示了一個語句塊(即接下來有一個縮進的多行代碼區域),該語句塊內的代碼是對文件的操作,當脫離該語句塊時(即沒有了縮進),則表示with語句塊結束,接下來的代碼不是對文件的操作代碼
  • 注意,當脫離with語句塊的時候,即表示結束了文件的操作,這是python會自動調用close()關閉這個文件,此后不能再引用這個文件對象
  • 優點

  • 簡單
  • 自動管理文件對象,不需要調用close()
  • 強的魯棒性;當遭遇程序bug時導致本來應有的close()未能執行,如果使用with,python保證即使出現故障,也能保證文件被正確關閉
  • 轉載于:https://www.cnblogs.com/whu-2017/p/9086717.html

    總結

    以上是生活随笔為你收集整理的python中with语句的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。