麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

Python with關鍵字,上下文管理器,@contextmanager文件操作示例

2024-09-09 19:02:13
字體:
來源:轉載
供稿:網友

本文實例講述了Python with關鍵字,上下文管理器,@contextmanager文件操作。分享給大家供大家參考,具體如下:

demo.py(with 打開文件):

# open 方法的返回值賦值給變量 f,當離開 with 代碼塊的時候,系統會自動調用 f.close() 方法# with 的作用和使用 try/finally 語句是一樣的。with open("output.txt", "r") as f:  f.write("XXXXX")

demo.py(with,上下文管理器):

# 自定義的MyFile類# 實現了 __enter__() 和 __exit__() 方法的對象都可稱之為上下文管理器class MyFile():  def __init__(self, filename, mode):    self.filename = filename    self.mode = mode  def __enter__(self):    print("entering")    self.f = open(self.filename, self.mode)    return self.f  # with代碼塊執行完或者with中發生異常,就會自動執行__exit__方法。  def __exit__(self, *args):    print("will exit")    self.f.close()# 會自動調用MyFile對象的__enter__方法,并將返回值賦給f變量。with MyFile('out.txt', 'w') as f:  print("writing")  f.write('hello, python')  # 當with代碼塊執行結束,或出現異常時,會自動調用MyFile對象的__exit__方法。 

demo.py(實現上下文管理器的另一種方式):

from contextlib import contextmanager@contextmanagerdef my_open(path, mode):  f = open(path, mode)  yield f  f.close()# 將my_open函數中yield后的變量值賦給f變量。with my_open('out.txt', 'w') as f:  f.write("XXXXX")  # 當with代碼塊執行結束,或出現異常時,會自動執行yield后的代碼。

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久综合狠狠综合久久 | 黄色片视频在线观看 | 精品亚洲夜色av98在线观看 | 欧美wwwsss9999| 黄色男女视频 | aa级黄色片 | 精品国产一区二区三区久久久蜜 | 91短视频免费 | 性大片1000免费看 | 巨根插入 | 91成人一区二区三区 | 午夜精品久久久久久毛片 | 久久国产精品久久久久久电车 | 欧美色大成网站www永久男同 | 精品一区二区三区欧美 | 成人免费视频视频在线观看 免费 | 国产品久久 | 国产99久久精品一区二区300 | 久久精品欧美一区二区三区不卡 | 成人福利视频 | 久久国产亚洲精品 | 国产精品一区二区三区在线 | 日韩视频一区二区在线观看 | 成年性羞羞视频免费观看无限 | 一区二区三区日韩电影 | 欧美精品一区二区久久久 | 免费在线观看成年人视频 | 自拍亚洲伦理 | 国产亚洲精品久久久闺蜜 | 午夜视频亚洲 | 全网免费毛片 | 欧美精品久久久久久久久久 | 精品国产九九九 | 九九热在线视频免费观看 | 久在线草 | 黄色免费入口 | 欧产日产国产精品v | 猫咪av在线 | 黄色免费在线网址 | 国内久久久久 | av中文一区 |