# __enter__、__exit__ 用來對上下文管理
class content:
def __init__(self, filepath, mode):
self.filepath = filepath
self.mode = mode
self.encoding = 'utf-8'
self.fileobject = None
def __enter__(self):
# 可以用來:開啟檔案、連結、資料操作
self.fileobject = open(self.filepath, self.mode, encoding=self.encoding) # 得到一個檔案物件,然後進行返回
return self
def __exit__(self, exc_type, exc_val, exc_tb):
# 關閉 or 結束
self.fileobject.close() # 操作完成後,進行關閉檔案
def send(self):
self.fileobject.write('傳送\n') # 透過獲取的檔案物件進行寫操作
def read(self):
self.fileobject.write('傳送222\n')
# 寫法1
obj = content('test', 22)
# 如果需要支援 with,需要在類方法中,增加__enter、__exit__方法,否則報錯
with obj as xxx: # with的是一個物件,只要with這個物件時,自動執行__enter 方法,
print(xxx) # 如果enter中return 123,此時as xxx 中的:xxx 就等於123
# 寫法2
# 也支援下面的這種寫法:
with content('test.txt', 'a') as obj:
print(obj) # 當with裡面的程式碼執行完後,自動執行 __exit__ 方法
# 此時執行的 obj.send/obj.read 都 在 __enter__ 之後
obj.send()
obj.read()
06 #### `__enter__、__exit__` 用來對上下文管理,可以使用這兩個方法
相關文章
- 對比兩個圖片是否相等用什麼方法?
- 兩分鐘快速學會專案管理方法,管理工具用起來!專案管理
- Mac應用通知太煩人,用這個方法就對了!Mac
- 對我來說資料庫圖形化管理工具用這個足夠了資料庫
- 哪裡可以免費下載短影片?這個方法你們用過嗎?
- 據說這個方法可以獲取CSDN積分
- Python:兩個使用單例模式的方法Python單例模式
- Excel匯入匯出-(poi)簡單封裝兩個類,拿來就可以用Excel封裝
- Mac執行越來越慢,從這兩個方面入手!Mac
- Echarts一個圖例可以共用兩個或者兩個以上的餅圖Echarts
- 請使用css畫一個圓,方法可以多種CSS
- python上下文管理器closing的應用Python
- Python入門:ChainMap 有效管理多個上下文PythonAI
- MYSQL 使用基礎 - 這麼用就對了MySql
- 怎麼使用圖片管理這個外掛
- 一個微服務對應一個有界的上下文嗎?微服務
- 修改路由表,讓裝置可以同時使用兩個網路路由
- 專案中如何管理人員?可以遵循這11個原則
- 用 Java 訓練深度學習模型,原來可以這麼簡單!Java深度學習模型
- 英偉達不止晶片,Omniverse可以這樣用來展示公司風采晶片
- 電波來信:每個人可能都會和這兩個字有交集:癌症
- 在 Rocky Linux 中,你可以使用 firewalld 來管理防火牆規則。Linux防火牆
- 資料治理:說起來容易,做起來難?這個方法論值得收藏
- IDC管理系統對於小型IDC來說實用嗎?
- C#上下文管理C#
- chatgpt 對接 上下文ChatGPT
- 如何寫一個好的測試?總結起來就這兩點……
- 雙十二來了,你的表格可以這樣玩!這個工具還能提升Excel的效能Excel
- 再來兩個小問題
- 整理了這23個開源項,初學者可以拿來練習!
- 管理多個專案的主要挑戰與應對方法
- 秒啊,速來get這9個jupyter實用技巧
- 怎樣在Excel中新增水印?學會這個方法可以輕鬆搞定Excel
- 有點東西,template可以直接使用setup語法糖中的變數原來是因為這個變數
- 暴雨之後,評估與重建可以用這個資料集
- SAP S/4HANA系統上所有可以用來建立擴充套件欄位的業務上下文套件
- 兩個星期,用Flutter擼個APPFlutterAPP
- 如何快速生成標題呢?這個自媒體工具絕對可以幫到你!