成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python上下面管理工具適用場景及錯誤處理

89542767 / 457人閱讀

  本文主要是給大家介紹了python上下面管理工具適用場景及錯誤處理實例詳細說明,感興趣的小伙伴可以參考去了解一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪


  前言


  應(yīng)用前后文管理工具,能讓編碼更為雅致簡約。自然,前后文的管理工具的功效不僅于此,它內(nèi)部進行體制,能夠很好地解決編碼出現(xiàn)異常,提高編碼的復用性


  1、先看一下最典型的例子,with句子


  #創(chuàng)建一個文件載入字符串數(shù)組“Python”
  f=open('123.txt','w')
  f.write("python")
  f.close()
  #使用with句子啟用前后文進行文件寫入實際操作
  withopen('123.txt','w')asf:
  f.write('python')


  2、什么叫前后文管理工具?


  前后文是context直接翻譯的稱呼,在系統(tǒng)中用于表明編碼實施過程中所處前后左右自然環(huán)境,例如在文件操作時,文檔必須打開關(guān)閉,而文檔讀寫操作就處在文件操作的前后文環(huán)境里;


  前后文管理工具,前后文管理工具指的是在這段執(zhí)行命令以前,實行某些預(yù)備處理工作,執(zhí)行命令以后再執(zhí)行某些清潔工作。


  前后文管理工具中有enter()和exit()2個方式,enter()方式在實施with后邊的句子時實行,通常用于解決操作前內(nèi)容,特別是一些創(chuàng)建對象,復位等;exit()方式在with里的執(zhí)行命令完成后實行,通常用于解決某些善后處理掃尾工作,例如文件信息關(guān)掉,數(shù)據(jù)庫關(guān)掉等。


  3、前后文管理工具的基本原理全過程如下所示:


  調(diào)用enter()方式,開展預(yù)備處理實際操作


  實行客戶實際操作


  調(diào)用exit()方式,進行清除實際操作


  4、前后文管理工具的應(yīng)用領(lǐng)域:


  資源優(yōu)化配置作用,即文件整理、數(shù)據(jù)連接、數(shù)據(jù)庫服務(wù)器等行為的時候需要關(guān)掉網(wǎng)絡(luò)資源。


  還可以在執(zhí)行命令前后左右提升作用,類似裝飾器,例如編碼之前做過權(quán)限驗證等。


  4.1數(shù)據(jù)庫連接


  import pymysql
  class DBConnection(object):
  def __init__(self,ip,user,passwd,db):
  self.ip=ip
  self.user=user
  self.passwd=passwd
  self.db=db
  def __enter__(self):
  self.conn=pymysql.connect(self.ip,user=self.user,passwd=self.passwd,db=self.db)
  self.cur=conn.cursor()
  return self.cur
  def __exit__(self,exc_type,exc_val,exc_tb):
  self.cur.close()
  self.conn.close()
  with DBConnection('192.168.121.xxx',user="xxx",passwd="123456",db="xxx")as cur:
  cur.execute("select*from studnet;")
  result=cur.fetchall()
  print(result)


  完成DBConnection這個類,每次連接數(shù)據(jù)庫時,只要簡單的調(diào)用with語句即可,不需要關(guān)心數(shù)據(jù)庫的關(guān)閉、異常等


  4.2上下文管理器的異常處理


  class MyOpen(object):
  """自定義上下文管理類"""
  def __init__(self,file,mode):
  self._file=file
  self._mode=mode
  def __enter__(self):
  self._handle=open(self._file,self._mode)
  return self._handle
  def __exit__(self,exc_type,exc_val,exc_tb):
  #print('Type:',exc_type)
  #print('Value:',exc_val)
  #print('TreacBack:',exc_tb)
  self._handle.close()
  print("異常已被處理")
  return True
  #讀的模式打開文件,進行寫操作,不支持
  with MyOpen('123.txt','r')as f:
  f.write('python')
  #輸出:
  異常已被處理
  with語法不僅可以簡化資源操作的后續(xù)清除操作,還可以代替try/finally進行異常處理
  當with中執(zhí)行的語句發(fā)生異常時,異常信息會被發(fā)送到exit()方法的參數(shù)中,exit()方法有如下三個參數(shù):
  exc_type:異常類型
  exc_val:異常值
  exc_tb:異?;厮葑粉?/pre>


  這三個參數(shù)都與異常有關(guān),with語句會把異常的exc_type,exc_val和exc_tb傳遞給exit()方法,它讓exit()方法來處理異常,如果exit()返回的是True,那么這個異常就被忽略,并按照我們定義的方式進行拋出。如果exit()返回的是True以外的任何東西,那么這個異常將被with語句拋出。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129059.html

相關(guān)文章

  • 真假美猴王-Numpy數(shù)據(jù)與Python數(shù)組的區(qū)別與聯(lián)系

    摘要:下文統(tǒng)一稱為數(shù)組是存儲單一數(shù)據(jù)類型的多維數(shù)組同語言數(shù)組直接保存數(shù)值而則是能夠?qū)?shù)組進行處理的函數(shù)。動態(tài)數(shù)據(jù)類型與的數(shù)組和的這些不可變數(shù)據(jù)類型的適用場景等可變數(shù)據(jù)類型適用于需要不斷對原始數(shù)據(jù)進行修改的場景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一個矩陣計算包,功能類似ma...

    鄒強 評論0 收藏0
  • 商業(yè)銀行接口自動化測試結(jié)果分析方法與裝置

    摘要:接口測試結(jié)果歸類分析方法基于接口測試結(jié)果模型化和組織級的錯誤碼庫非缺陷知識庫,本專利的方法及裝置將接口測試的結(jié)果分類分析,輸出概要表和錯誤分類表。 詳細介紹技術(shù)背...

    nidaye 評論0 收藏0
  • PyCon China 深圳站精彩回顧(附PPT視頻)

    摘要:月日,第六屆大會在深圳召開。這是這次大會的第二站活動,第一站已在上海成功舉辦。深圳站視頻及,請在公眾號后臺回復,獲取分享鏈接。據(jù)介紹,目前支持多種開發(fā)庫,如內(nèi)置和等。該協(xié)議的推出,是為了統(tǒng)一標準,提高效率。 本文為 PyChina 和「編程派」聯(lián)合首發(fā),作者為 EarlGrey。「編程派」是一個專注 Python 學習交流的微信公眾號。 9 月 25 日,第六屆 PyCon China...

    lykops 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<