最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python錯(cuò)誤的處理方法

 更新時(shí)間:2020年06月23日 11:40:04   作者:認(rèn)真對(duì)待世界的小白  
這篇文章主要介紹了Python錯(cuò)誤的處理方法,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

異常的捕獲與處理

什么是錯(cuò)誤

簡(jiǎn)而言之:還沒(méi)運(yùn)行,在語(yǔ)法解析的時(shí)候,就發(fā)現(xiàn)語(yǔ)法存在問(wèn)題,這個(gè)時(shí)候就是錯(cuò)誤。

什么是異常

簡(jiǎn)而言之:代碼寫(xiě)好之后,無(wú)明顯語(yǔ)法錯(cuò)誤(這個(gè)時(shí)候,編輯器不知道有錯(cuò),語(yǔ)法解析時(shí)也不知道有錯(cuò)),但是運(yùn)行的時(shí)候,會(huì)發(fā)生錯(cuò)誤,這個(gè)時(shí)候稱之為異常。

什么是警告

import warnings

def fxn():
  warnings.warn("deprecated", DeprecationWarning)

異常怎么處理

異常的處理形式如下:

try:
  你要做的可能會(huì)發(fā)生異常的事
except 可能會(huì)發(fā)生的異常:
  發(fā)生異常之后要做的事
except 可能會(huì)發(fā)生的異常2:
  發(fā)生異常之后要做的事2
finally:
  最終要做的事情

比如下面的代碼:

try:
  print(10/0)
except ZeroDivisionError:
  print("除數(shù)不能為0")

這個(gè)時(shí)候再次運(yùn)行,就不會(huì)再出現(xiàn)異常

在平時(shí)的開(kāi)發(fā)中,也會(huì)使用預(yù)定義清理的操作,來(lái)避免因?yàn)楫惓6鴮?dǎo)致程序奔潰,比如在進(jìn)行IO操作的時(shí)候,可以使用:

with open("myfile.txt") as f:
  for line in f:
    print(line, end="")

這樣一旦運(yùn)行時(shí)發(fā)生異常,程序會(huì)自動(dòng)幫你關(guān)閉文件,避免整個(gè)程序奔潰

自定義異常與異常的拋出

雖然python中提供了非常多的內(nèi)置異常類,但是,在平時(shí)開(kāi)發(fā)中,針對(duì)特定的業(yè)務(wù),可能需要自定義異常,此時(shí)怎么辦?

通過(guò)自定義繼承Exception類的類,可以實(shí)現(xiàn)異常的自定義

class MyException(Exception):
  def __init__(self, parameter):
    err = '非法入?yún)0},分母不能為0'.format(parameter)
    Exception.__init__(self, err)
    self.parameter = parameter

當(dāng)我們代碼中碰到某種特殊業(yè)務(wù)情況,需要向調(diào)用方拋出自定義異常,可以使用 raise 關(guān)鍵字

from chapter12.my_exception import MyException

def my_fun(x):
  if x == 0:
    raise MyException(x)
  return 12/x

print(my_fun(-12))

我們?cè)诓东@異常之后,也可以直接將異常拋出,此時(shí)直接使用 raise 關(guān)鍵字即可

def my_func():
  try:
    print(10 / 0)
  except ZeroDivisionError:
    print("除數(shù)不能為0")
    # 此處直接將捕獲的異常拋出
    raise

單元測(cè)試

什么是單元測(cè)試

  • 單元測(cè)試(英語(yǔ):Unit Testing)又稱為模塊測(cè)試,是針對(duì)程序模塊(軟件設(shè)計(jì)的最小單位)來(lái)進(jìn)行正確性檢驗(yàn)的測(cè)試工作。程序單元是應(yīng)用的最小可測(cè)試部件。在過(guò)程化編程中,一個(gè)單元就是單個(gè)程序、函數(shù)、過(guò)程等;對(duì)于面向?qū)ο缶幊蹋钚卧褪欠椒?,包括基類(超類)、抽象類、或者派生類(子類)中的方法?/li>
  • 簡(jiǎn)而言之:就是寫(xiě)一段代碼,用來(lái)驗(yàn)證另一段代碼在特定情況下的正確性

單元測(cè)試的好處與“壞處”

  • 好處:減少bug、提高代碼質(zhì)量、可以放心重構(gòu)(在未來(lái)修改實(shí)現(xiàn)的時(shí)候,可以保證代碼的行為仍舊是正確的)
  • "壞處":占用開(kāi)發(fā)時(shí)間,尤其是在起步階段

在python中,如何編寫(xiě)單元測(cè)試

1、新建python文件,編寫(xiě)具體業(yè)務(wù)代碼

class MyTest():
  def my_add(self, a, b):
    return a + b

2、右鍵類名,選擇Go TO ==》test,或者直接 ctrl+shift +t

3、填寫(xiě)好相應(yīng)的模塊名及測(cè)試類名,點(diǎn)擊ok,此時(shí)pycharm會(huì)幫我們自動(dòng)創(chuàng)建測(cè)試模塊及類

4、編寫(xiě)測(cè)試代碼,并執(zhí)行單元測(cè)試

import unittest
from unittest import TestCase
from test import MyTest

class TestMyTest(TestCase):
def test_add(self):
  s= MyTest()
  self.assertEqual(s.my_add(1,5),6)

if __name__ == "__main__":
unittest.main()

以上就是Python錯(cuò)誤的處理方法的詳細(xì)內(nèi)容,更多關(guān)于Python錯(cuò)誤處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式

    keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式

    這篇文章主要介紹了keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python基礎(chǔ)之變量的相關(guān)知識(shí)總結(jié)

    Python基礎(chǔ)之變量的相關(guān)知識(shí)總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python變量展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python正則表達(dá)re模塊之findall()函數(shù)詳解

    Python正則表達(dá)re模塊之findall()函數(shù)詳解

    在python中,通過(guò)內(nèi)嵌集成re模塊可以直接調(diào)用來(lái)實(shí)現(xiàn)正則匹配,其中re.findall()函數(shù)可以遍歷匹配,可以獲取字符串中所有匹配的字符串,返回一個(gè)列表,這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)re模塊之findall()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解

    pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Django框架中視圖的用法

    Django框架中視圖的用法

    這篇文章介紹了Django框架中視圖的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python利用cv2庫(kù)讀取和保存視頻的操作步驟

    python利用cv2庫(kù)讀取和保存視頻的操作步驟

    這篇文章主要介紹了python利用cv2庫(kù)讀取和保存視頻的操作步驟,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Django2.2配置xadmin的實(shí)現(xiàn)

    Django2.2配置xadmin的實(shí)現(xiàn)

    這篇文章主要介紹了Django2.2配置xadmin的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 使用Python創(chuàng)建一個(gè)簡(jiǎn)單的任務(wù)管理器應(yīng)用程序

    使用Python創(chuàng)建一個(gè)簡(jiǎn)單的任務(wù)管理器應(yīng)用程序

    本文主要介紹了使用Python創(chuàng)建一個(gè)簡(jiǎn)單的任務(wù)管理器應(yīng)用程序,這個(gè)應(yīng)用程序?qū)⒃试S用戶添加、編輯、刪除和完成任務(wù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Python多任務(wù)版靜態(tài)Web服務(wù)器實(shí)現(xiàn)示例

    Python多任務(wù)版靜態(tài)Web服務(wù)器實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python靜態(tài)Web服務(wù)器多任務(wù)版實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python pandas 重命名索引和列名稱的實(shí)現(xiàn)

    Python pandas 重命名索引和列名稱的實(shí)現(xiàn)

    本文主要介紹了Python pandas 重命名索引和列名稱的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論

大新县| 西林县| 莒南县| 松江区| 和平区| 庆安县| 特克斯县| 淮南市| 尤溪县| 达拉特旗| 沅江市| 余庆县| 昌宁县| 微山县| 南投县| 津南区| 益阳市| 正蓝旗| 清镇市| 阿城市| 鄂伦春自治旗| 深水埗区| 湖州市| 侯马市| 万州区| 泌阳县| 文成县| 车致| 比如县| 定南县| 皮山县| 夏邑县| 安化县| 嘉峪关市| 昔阳县| 四子王旗| 聊城市| 康马县| 浮山县| 长治县| 禹州市|