国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

python上下面管理工具適用場(chǎng)景及錯(cuò)誤處理

89542767 / 433人閱讀

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


  前言


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


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


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


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


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


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


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


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


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


  實(shí)行客戶(hù)實(shí)際操作


  調(diào)用exit()方式,進(jìn)行清除實(shí)際操作


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


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


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


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


  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這個(gè)類(lèi),每次連接數(shù)據(jù)庫(kù)時(shí),只要簡(jiǎn)單的調(diào)用with語(yǔ)句即可,不需要關(guān)心數(shù)據(jù)庫(kù)的關(guān)閉、異常等


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


  class MyOpen(object):
  """自定義上下文管理類(lèi)"""
  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
  #讀的模式打開(kāi)文件,進(jìn)行寫(xiě)操作,不支持
  with MyOpen('123.txt','r')as f:
  f.write('python')
  #輸出:
  異常已被處理
  with語(yǔ)法不僅可以簡(jiǎn)化資源操作的后續(xù)清除操作,還可以代替try/finally進(jìn)行異常處理
  當(dāng)with中執(zhí)行的語(yǔ)句發(fā)生異常時(shí),異常信息會(huì)被發(fā)送到exit()方法的參數(shù)中,exit()方法有如下三個(gè)參數(shù):
  exc_type:異常類(lèi)型
  exc_val:異常值
  exc_tb:異常回溯追蹤


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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129059.html

相關(guān)文章

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

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

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

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

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

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

    lykops 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<