亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python異常學習筆記

 更新時間:2015年02月03日 11:30:03   投稿:junjie  
這篇文章主要介紹了Python異常學習筆記,本文著重講解了如何自定義一個異常,需要的朋友可以參考下

異常(exceptions)是Python中一種非常重要的類型,它和語法錯誤不同,是在程序運行期間引發(fā)的錯誤。Python中內(nèi)置了很多異常,如IOError,NameError,KeyboardInterrupt等,更多的異??梢?a target="_blank" >點擊這里。

異常的意義在于提供一種更加優(yōu)雅的運行方式,例如用Python編寫一個計算器,如果用戶輸入不能計算的對象,則可以拋出異常,并進行處理, 如下:

while True:
  try:
    x= int(input('Please In enter A number:'))
    print "Your Input is %s"%x
    break
  except Exception,e:
    print e

Python是一門面向對象的語言,異常本身也是對象, 用dir(Exception)查看Exception類的屬性,如下:[‘__class__', ‘__delattr__', ‘__dict__', ‘__doc__', ‘__format__', ‘__getattribute__', ‘__getitem__', ‘__getslice__', ‘__hash__', ‘__init__', ‘__new__', ‘__reduce__', ‘__reduce_ex__', ‘__repr__', ‘__setattr__', ‘__setstate__', ‘__sizeof__','__str__', ‘__subclasshook__', ‘__unicode__', ‘a(chǎn)rgs', ‘message'], 除開args和message外,其余的均為其內(nèi)部屬性, 其中args是傳遞給異常類的構造函數(shù)的一個類型為元祖的參數(shù), 一些內(nèi)置函數(shù),如IOError需要它接收多個參數(shù),其它的則直接是直接傳遞一個錯誤提示字符串。

Python的異??梢酝ㄟ^try語句來檢查,任何在try語句塊里的代碼都會被監(jiān)測,檢查有無異常產(chǎn)生,except會根據(jù)輸入檢查異常的類型,并執(zhí)行except內(nèi)的代碼。那么,這里就不禁要問問,except后面的兩個參數(shù)到底是什么?如果第一個是錯誤的類型,那么第二參數(shù)呢?對其進行檢測,發(fā)現(xiàn)它是屬于Exception的實例,也就是說,它是由異常類產(chǎn)生的一個具體的異常對象。
那么,用戶如果自定義一個異常呢?Python中規(guī)定,所有異常必須直接或者間接的繼承自Exception類,如下,自定義的異常:

#!/usr/bin/env python
class MyError(Exception):
  def __init__(self,*args):
    self.value=args[0]
  def __str__(self):
    return repr(self.value)
def showname(*args):
  if args:
    print args
  else:
    raise MyError('Error: need 1 arguments at last, 0 Input')

把這個文件保存為showname.py,其它模塊就可以引入調(diào)用showname函數(shù),并對它執(zhí)行的結果進行檢測:

#!/usr/bin/env python
import showname
try:
  showname.showname()
except showname.MyError,e:
  print e

值得注意的幾點是:1, python中用raise拋出異常; 2, 由于所有異常都是繼承自Exception,所以,當不確定異常類型的時候,可以在except后面直接接Exception來捕獲所有異常;3,由于異常的繼承關系,異常內(nèi)的所有屬性都是可以被重定義的,也可以在自定義的異常上增加屬性。

您可能感興趣的文章:

相關文章

  • Python操作MongoDB數(shù)據(jù)庫的方法示例

    Python操作MongoDB數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Python操作MongoDB數(shù)據(jù)庫的方法,結合實例形式分析了Python命令行模式下操作MongoDB數(shù)據(jù)庫實現(xiàn)連接、查找、刪除、排序等相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • Python建造者模式案例運行原理解析

    Python建造者模式案例運行原理解析

    這篇文章主要介紹了python建造者模式案例運行原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python 余弦相似度與皮爾遜相關系數(shù) 計算實例

    Python 余弦相似度與皮爾遜相關系數(shù) 計算實例

    今天小編就為大家分享一篇Python 余弦相似度與皮爾遜相關系數(shù) 計算實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python?requests.post請求404問題及解決方法

    python?requests.post請求404問題及解決方法

    這篇文章主要介紹了python?requests.post請求404問題,這里需要根據(jù)自己實際情況來分析當前接口接收數(shù)據(jù)時使用的是什么格式,但目前一般的網(wǎng)站都開始采用application/jsond的數(shù)據(jù)格式,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • python中assert用法實例分析

    python中assert用法實例分析

    這篇文章主要介紹了python中assert用法,實例分析了assert的功能及相關使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Django Haystack 全文檢索與關鍵詞高亮的實現(xiàn)

    Django Haystack 全文檢索與關鍵詞高亮的實現(xiàn)

    這篇文章主要介紹了Django Haystack 全文檢索與關鍵詞高亮的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python標準庫datetime?date模塊的詳細介紹

    Python標準庫datetime?date模塊的詳細介紹

    這篇文章主要介紹了Python標準庫datetime?date模塊的詳細介紹,datetime是Python提供的操作日期和時間的標準庫,主要有datetime.date模塊、datetime.time模塊及datetime.datetime模塊
    2022-07-07
  • Python計算三維矢量幅度的方法

    Python計算三維矢量幅度的方法

    這篇文章主要介紹了Python計算三維矢量幅度的方法,涉及Python矢量運算的相關技巧,需要的朋友可以參考下
    2015-06-06
  • Python 如何保存json文件并格式化

    Python 如何保存json文件并格式化

    這篇文章主要介紹了Python 如何保存json文件并格式化,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python中使用dwebsocket實現(xiàn)后端數(shù)據(jù)實時刷新

    Python中使用dwebsocket實現(xiàn)后端數(shù)據(jù)實時刷新

    dwebsocket是Python中一款用于實現(xiàn)WebSocket協(xié)議的庫,可用于后端數(shù)據(jù)實時刷新。在Django中結合使用dwebsocket和Channels,可以實現(xiàn)前后端的實時通信,支持雙向數(shù)據(jù)傳輸和消息推送,適用于實時聊天、數(shù)據(jù)監(jiān)控、在線游戲等場景
    2023-04-04

最新評論