免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

怎么用Python實現with上下文管理器-創新互聯

這篇文章主要介紹“怎么用Python實現with上下文管理器”,在日常操作中,相信很多人在怎么用Python實現with上下文管理器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Python實現with上下文管理器”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創新互聯是專業的吳興網站建設公司,吳興接單;提供成都網站建設、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行吳興網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

with上下文管理器,這個用過很多次,比如在執行mysql語句的時候要先鏈接數據庫,獲取游標,執行sql語句,關閉連接。又或者是文本內容的讀寫,打開文本寫入內容關閉文本。

如果每次執行一條語句都要做這么多操作,就會產生大量重復的代碼,這個時候使用上下文管理器即可美觀又輕松的解決這個問題。

with管理上下文的作用是對一些重復的代碼簡單化,并且能優化try/except/finally的寫法。

上下文的實現是通過兩個魔法函數enter和exit實現,后來更新再造后,使用contextlib提供的API可以更加方便的完成。

概念和功能都明白后,最重要的還是如何實現。

舉個例子:浪子去買貓餅干,每次買的時候都要做這些動作,掏出錢包,花出x元,收回錢包。每次都要重復掏錢包收錢包這個動作有些麻煩,并且萬一忘了掏錢包就不能付錢,忘了收錢包的話,錢包就掉了。每次掏錢包收錢包都要寫代碼,有啥簡介的方式嘛?

使用enter和exit實現(1)

class
 wallet(object):
   def __init__(self,man):
       self.man=man

   def __enter__(self):
       print(self.man + '放心大膽的掏出了錢包')

   def __exit__(self, exc_type, exc_val, exc_tb):
       print(self.man + '小心翼翼的收起來錢包')

def use_money(man):
   return wallet(man)

with use_money('langzi') as a:
   print('花了600塊錢')

返回結果:

langzi放心大膽的掏出了錢包
花了600塊錢
langzi小心翼翼的收起來錢包

使用enter和exit實現(2)

當然也可以這么寫:

class
 wallet(object):
   def __init__(self,man):
       self.man=man

   def __enter__(self):
       print(self.man + '放心大膽的掏出了錢包')
       return self
   # return self 這一步非常重要,作用是返回實例

   def __exit__(self, exc_type, exc_val, exc_tb):
       print(self.man + '小心翼翼的收起來錢包')

   def use_money(self,money):
       print(self.man + '花了' + money +'元')

with wallet('浪子')as a:
   a.use_money('600')

運行結果:

浪子放心大膽的掏出了錢包
浪子花了600元
浪子小心翼翼的收起來錢包

使用contextlib實現

import
 contextlib

@contextlib.contextmanager
def use_money(man):
   try:
       print(man + '十分放心大膽的掏出錢包')
       yield None
       # yield生成器,運行到這里會返回一個值(你隨便寫一個就行)
   finally:
       print(man + '萬分謹慎的收起了錢包')

with use_money('langzi')as a:
   print('花了1塊錢')

返回結果:

langzi十分放心大膽的掏出錢包
花了1塊錢
langzi萬分謹慎的收起了錢包

到此,關于“怎么用Python實現with上下文管理器”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!

當前文章:怎么用Python實現with上下文管理器-創新互聯
當前路徑:http://newbst.com/article38/hhipp.html

成都網站建設公司_創新互聯,為您提供品牌網站制作外貿網站建設網站營銷商城網站營銷型網站建設電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作