欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)python中的try、except、finally 執(zhí)行順序詳解

 更新時(shí)間:2019年02月18日 09:05:37   作者:mishidemudong  
今天小編就為大家分享一篇對(duì)python中的try、except、finally 執(zhí)行順序詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

如下所示:

def test1():
  try:
   print('to do stuff')
   raise Exception('hehe')
   print('to return in try')
   return 'try'
 except Exception:
   print('process except')
   print('to return in except')
   return 'except'
 finally:
   print('to return in finally')
   return 'finally'

test1Return = test1()
print('test1Return : ' + test1Return)

輸出:

to do stuff
process except
to return in except
to return in finally
test1Return : finally

在 try 中 raise一個(gè)異常,就立刻轉(zhuǎn)入 except 中執(zhí)行,在except 中遇到 return 時(shí),就強(qiáng)制轉(zhuǎn)到 finally 中執(zhí)行, 在 finally 中遇到 return 時(shí)就返回

def test2():
  try:
   print('to do stuff')
   print('to return in try')
   return 'try'
 except Exception:
   print('process except')
   print('to return in except')
   return 'except'
 finally:
   print('to return in finally')
   return 'finally'

test2Return = test2()
print('test1Return : ' + test2Return)

輸出:

to do stuff
to return in try
to return in finally
test2Return : finally

這里在 try 中沒(méi)有拋出異常,因此不會(huì)轉(zhuǎn)到 except 中,但是在try 中遇到return時(shí),也會(huì)立即強(qiáng)制轉(zhuǎn)到finally中執(zhí)行,并在finally中返回

test1和test2得到的結(jié)論:

無(wú)論是在try還是在except中,遇到return時(shí),只要設(shè)定了finally語(yǔ)句,就會(huì)中斷當(dāng)前的return語(yǔ)句,跳轉(zhuǎn)到finally中執(zhí)行,如果finally中遇到return語(yǔ)句,就直接返回,不再跳轉(zhuǎn)回try/excpet中被中斷的return語(yǔ)句

def test3():
  i = 0
 try:
   i += 1
 print('i in try : %s'%i)
   raise Exception('hehe')
 except Exception:
   i += 1
 print('i in except : %s'%i)
   return i
   finally:
   i += 1
 print ('i in finally : %s'%i )

print('test3Return : %s'% test3())

輸出:

i in try : 1
i in except : 2
i in finally : 3
test3Return : 2

def test4():
  i = 0
 try:
   i += 1
 return i
  finally:
   i += 1
 print ('i in finally : %s'%i )
print('test4Return : %s' % test4())

輸出

i in finally : 2
test4Return : 1

test3和test4得到的結(jié)論:

在except和try中遇到return時(shí),會(huì)鎖定return的值,然后跳轉(zhuǎn)到finally中,如果finally中沒(méi)有return語(yǔ)句,則finally執(zhí)行完畢之后仍返回原return點(diǎn),將之前鎖定的值返回(即finally中的動(dòng)作不影響返回值),如果finally中有return語(yǔ)句,則執(zhí)行finally中的return語(yǔ)句。

def test5():
  for i in range(5):
   try:
     print('do stuff %s'%i)
     raise Exception(i)
   except Exception:
     print('exception %s'%i)
     continue
 finally:
     print('do finally %s'%i)
test5()

輸出

do stuff 0
exception 0
do finally 0
do stuff 1
exception 1
do finally 1
do stuff 2
exception 2
do finally 2
do stuff 3
exception 3
do finally 3
do stuff 4
exception 4
do finally 4

test5得到的結(jié)論:

在一個(gè)循環(huán)中,最終要跳出循環(huán)之前,會(huì)先轉(zhuǎn)到finally執(zhí)行,執(zhí)行完畢之后才開(kāi)始下一輪循環(huán)

以上這篇對(duì)python中的try、except、finally 執(zhí)行順序詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Golang GBK轉(zhuǎn)UTF-8的例子

    Golang GBK轉(zhuǎn)UTF-8的例子

    今天小編就為大家分享一篇Golang GBK轉(zhuǎn)UTF-8的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python 閉包的使用方法

    Python 閉包的使用方法

    這篇文章主要介紹了Python 閉包的使用方法的相關(guān)資料,了解閉包及定義方法和使用,需要的朋友可以參考下
    2017-09-09
  • matplotlib如何設(shè)置坐標(biāo)軸刻度的個(gè)數(shù)及標(biāo)簽的方法總結(jié)

    matplotlib如何設(shè)置坐標(biāo)軸刻度的個(gè)數(shù)及標(biāo)簽的方法總結(jié)

    這里介紹兩種設(shè)置坐標(biāo)軸刻度的方法,一種是利用pyplot提交的api去進(jìn)行設(shè)置,另一種是通過(guò)調(diào)用面向?qū)ο蟮腶pi, 即通過(guò)matplotlib.axes.Axes去設(shè)置,需要的朋友可以參考下
    2021-06-06
  • Python爬蟲(chóng)技術(shù)

    Python爬蟲(chóng)技術(shù)

    本文將要介紹的是python爬蟲(chóng)基礎(chǔ)知識(shí),感興趣的小伙伴一起來(lái)學(xué)習(xí)吧
    2021-08-08
  • Python OpenCV讀取中文路徑圖像的方法

    Python OpenCV讀取中文路徑圖像的方法

    這篇文章主要介紹了Python OpenCV讀取中文路徑圖像的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python使用Traits庫(kù)實(shí)現(xiàn)對(duì)象屬性

    Python使用Traits庫(kù)實(shí)現(xiàn)對(duì)象屬性

    Python作為一種動(dòng)態(tài)編程語(yǔ)言,它的變量沒(méi)有類(lèi)型,這種靈活性給快速開(kāi)發(fā)帶來(lái)很多便利,不過(guò)它也不是沒(méi)有缺點(diǎn),Traits庫(kù)的一個(gè)很重要的目的就是為了解決這些缺點(diǎn)所帶來(lái)的問(wèn)題,trait為Python對(duì)象的屬性增加了類(lèi)型定義的功能
    2023-11-11
  • python利用pandas和csv包向一個(gè)csv文件寫(xiě)入或追加數(shù)據(jù)

    python利用pandas和csv包向一個(gè)csv文件寫(xiě)入或追加數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于python利用pandas和csv包向一個(gè)csv文件寫(xiě)入或追加數(shù)據(jù)的相關(guān)資料,我們?cè)絹?lái)越多的使用pandas進(jìn)行數(shù)據(jù)處理,有時(shí)需要向一個(gè)已經(jīng)存在的csv文件寫(xiě)入數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • Django 設(shè)置多環(huán)境配置文件載入問(wèn)題

    Django 設(shè)置多環(huán)境配置文件載入問(wèn)題

    這篇文章主要介紹了Django 設(shè)置多環(huán)境配置文件載入問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python使用django搭建web開(kāi)發(fā)環(huán)境

    Python使用django搭建web開(kāi)發(fā)環(huán)境

    這篇文章主要為大家詳細(xì)介紹了Python使用django搭建web開(kāi)發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • python主要用于哪些方向

    python主要用于哪些方向

    在本篇文章里小編給大家整理了一篇關(guān)于python用于的方向的相關(guān)文章,有需要的閱讀下吧。
    2020-07-07

最新評(píng)論