亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

Python with語句和過程抽取思想

2024-09-09 19:03:25
字體:
來源:轉載
供稿:網友

python中的with語句使用于對資源進行訪問的場合,保證不管處理過程中是否發生錯誤或者異常都會執行規定的__exit__(“清理”)操作,釋放被訪問的資源,比如有文件讀寫后自動關閉、線程中鎖的自動獲取和釋放等。

與python中with語句有關的概念有:上下文管理協議、上下文管理器、運行時上下文、上下文表達式、處理資源的代碼段。

with語句的應用場景

  編程中有很多操作都是配套使用的,這種配套的流程可以稱為計算過程,Python語言為這種計算過程專門設計了一種結構:with語句。比如文件處理就是這類計算過程的典型代表。

使用with語句前后對比

沒有使用with語句之前,我們是這樣打開一個文件的:

try: # 1. [進入] f = open('a.txt', 'r', encoding="utf-8") # 2. [執行] print(f.read())finally: if f:  # 3. [退出]  f.close()

python操作文件的流程一般就是這三步:

1.[進入]用只讀方式打開文件

如果文件不存在,open()函數就會拋出一個IOError的錯誤,并且給出錯誤碼和詳細的信息告訴你文件不存在

2.[執行]讀取文件內容

如果文件打開成功,接下來,調用read()方法可以一次讀取文件的全部內容,Python把內容讀到內存,用一個str對象表示

3.[退出]關閉打開的文件

文件使用完畢后必須關閉,因為文件對象會占用操作系統的資源,并且操作系統同一時間能打開的文件數量也是有限的

思考為什么關閉文件操作一定要放在finallly語句里?

  由于文件讀寫時都有可能產生IOError,一旦出錯,后面的f.close()就不會調用。所以,為了保證無論是否出錯都能正確地關閉文件,我們可以使用try ... finally來實現。

發現共性:

我們發現其實這種過程化的語句有共性,比如說在進去一個片段必須做某種超贊,處理工作又需要執行一個結束操作。比如上面的這段代碼:

finally: if f:  f.close()

就可以做一個封裝。

使用with語句后,我們是這樣打開一個文件的:

with open("a.txt", "r", encoding="utf-8") as f: print(f.read())

這個with語句和前面的try ... finally結構是一樣的,但是代碼更佳簡潔,并且不必調用f.close()方法。

with語句的執行原理

從解釋器的角度去理解with語句執行流程。

with語句的基本形式是:

with 表達式 as 變量: 語句塊

  這樣的一段代碼可以稱為一個上下文(context),在執行with語句時,解釋器會先求出表達式的值,這個值(對象)是一個上下文管理器,并且假設這個對象擁有如下類的構造方法:

def __enter__():  # 描述進入上下文的動作  pass def __exit__():  # 描述退出上下文的動作  pass

with語句在求出這個上下文管理器對象之后,自動執行進入方法,并將這個對象的返回值賦值于 as 之后的變量,然后執行語句塊。然后在退出上下文前,自動執行對象的退出方法。

python系統和標準庫的一些類型定義了這對操作,可以直接用于with語句。比如文件對象就直接支持這一對操作,因此可以用在with語句的頭部。

如果你也有類似的計算過程需要抽取出來,那么可以自定義一個類,并且包含進入、退出方法。

自定義open函數

自己實現才發現,使用裝飾器和生成器就能很好的解決這個問題,不需要用到類構造方法來實現;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产色综合久久不卡98| 国产成人精品综合久久久| 亚洲伦理中文字幕| 久久久久久一区二区三区| 国产一区二区日韩精品欧美精品| 亚洲无限av看| 另类少妇人与禽zozz0性伦| 国产一区二区三区高清在线观看| 91久久国产婷婷一区二区| 久久国产精品电影| 美女久久久久久久| 91性高湖久久久久久久久_久久99| 日韩在线观看免费全集电视剧网站| 欧美日韩综合视频网址| 亚洲精品456在线播放狼人| 久久成人精品视频| 国产在线精品播放| 麻豆国产va免费精品高清在线| 国产97色在线| 国a精品视频大全| 久久躁狠狠躁夜夜爽| 国产亚洲激情在线| 自拍偷拍亚洲精品| 狠狠躁夜夜躁人人爽超碰91| 国产精品va在线| 国内精品美女av在线播放| 日韩激情av在线免费观看| 国产精品96久久久久久又黄又硬| 这里只有精品在线观看| 精品无人区太爽高潮在线播放| 国产精品久久久久久久久借妻| 久久国产精品久久久久久| 久久久亚洲精品视频| 精品无码久久久久久国产| 亚洲亚裔videos黑人hd| 国产成人精品免费视频| 深夜精品寂寞黄网站在线观看| 欧美一级高清免费播放| 亚洲最大的网站| 奇米一区二区三区四区久久| 亚洲精品一区在线观看香蕉| 欧美日韩国产影院| 久久久久久久久中文字幕| 亚洲精品福利资源站| 亚洲欧美激情另类校园| 欧美中文在线观看| 中文字幕国产日韩| 欧美激情视频一区二区| 日韩免费av片在线观看| 欧美精品18videos性欧美| 日本午夜精品理论片a级appf发布| 91极品女神在线| 在线精品视频视频中文字幕| 亚洲视频在线免费看| 97视频在线看| 亚洲精品一区二区久| 国内精品久久久久久影视8| 中文字幕在线观看亚洲| 久久精品国产欧美亚洲人人爽| www.欧美三级电影.com| 亚洲天堂av在线播放| 狠狠躁天天躁日日躁欧美| 疯狂做受xxxx欧美肥白少妇| 98视频在线噜噜噜国产| 国产999精品| 精品国产电影一区| 欧美性猛交xxxx乱大交极品| 亚洲国产精品一区二区久| 日本成人黄色片| 97香蕉超级碰碰久久免费的优势| 国产精品h在线观看| 国产欧美一区二区三区四区| 久久精品99无色码中文字幕| 三级精品视频久久久久| 欧美综合一区第一页| 成人欧美一区二区三区在线湿哒哒| 国产日韩精品入口| 亚洲美女视频网站| 美女黄色丝袜一区| 欧美激情在线有限公司| 97激碰免费视频| 亚洲免费一在线| 日韩中文字幕在线播放| 久久久欧美一区二区| 亚洲第一区中文99精品| 国产精品欧美亚洲777777| 亚洲电影免费在线观看| 亚洲午夜av电影| 国产原创欧美精品| 国产精品久久久久久久久| 97在线免费观看| 国产成人+综合亚洲+天堂| 高清亚洲成在人网站天堂| 日韩美女视频免费看| 成人做爰www免费看视频网站| 成人欧美一区二区三区黑人| 日韩精品在线观看视频| 亚洲最新av在线| 欧美日韩在线视频观看| 成人网在线观看| 亚洲缚视频在线观看| 欧美交受高潮1| 久久躁日日躁aaaaxxxx| 亚洲自拍偷拍视频| 久久久视频精品| 这里只有精品视频在线| 黄色一区二区三区| 97热在线精品视频在线观看| 国产精品国产三级国产aⅴ浪潮| 久久精品视频在线播放| 欧美裸体视频网站| 97精品伊人久久久大香线蕉| 91极品视频在线| 亚洲欧美在线免费观看| 亚洲国产精久久久久久| 日韩欧美福利视频| 在线观看国产欧美| 18性欧美xxxⅹ性满足| 91在线精品视频| 国产精品日韩专区| 国产日韩精品电影| 欧美激情一级欧美精品| 亲爱的老师9免费观看全集电视剧| 中文字幕亚洲欧美一区二区三区| 亚洲性线免费观看视频成熟| 亚洲国产欧美一区二区丝袜黑人| 亚洲人a成www在线影院| 伊人亚洲福利一区二区三区| 国产丝袜视频一区| 日韩风俗一区 二区| 欧美性xxxxhd| 国产精品亚洲自拍| 亚洲影院污污.| 国产精品一区二区久久久久| 国产精品精品久久久久久| 亚洲性线免费观看视频成熟| 日韩av免费网站| 国产精品普通话| 亚洲女人天堂成人av在线| 久久久久久久久久久成人| 国产啪精品视频| 98精品国产高清在线xxxx天堂| 亚洲一区二区精品| 国产精品 欧美在线| 久久91亚洲精品中文字幕奶水| 九九热精品视频在线播放| 亚洲石原莉奈一区二区在线观看| 午夜精品久久久久久久白皮肤| 少妇久久久久久| 亚洲午夜小视频| 欧美精品18videos性欧美| 国产91ⅴ在线精品免费观看| 成人亚洲激情网| 欧美成人在线免费视频| 欧美高清在线播放| 97久久精品人人澡人人爽缅北| 精品电影在线观看| 最近2019中文字幕第三页视频| 九九久久综合网站| 欧美在线视频观看| 国产精品最新在线观看| 欧美成人亚洲成人日韩成人| 亚洲精品资源在线| 日韩女在线观看|