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

python中with用法講解

 更新時(shí)間:2020年02月07日 14:32:07   作者:木&子  
在本篇文章里小編給大家整理的是關(guān)于python中with用法講解內(nèi)容,有需要的朋友們可以參考下。

我們都知道打開文件有兩種方法:

  • f = open()
  • with open() as f:

這兩種方法的區(qū)別就是第一種方法需要我們自己關(guān)閉文件;f.close(),而第二種方法不需要我們自己關(guān)閉文件,無(wú)論是否出現(xiàn)異常,with都會(huì)自動(dòng)幫助我們關(guān)閉文件,這是為什么呢?

我們先自定義一個(gè)類,用with來(lái)打開它:

class Foo():
  def __enter__(self):
    print("enter called")
  def __exit__(self, exc_type, exc_val, exc_tb):
    print("exit called")
    print("exc_type :%s"%exc_type)
    print("exc_val :%s"%exc_val)
    print("exc_tb :%s"%exc_tb)


with Foo() as foo:
  print("hello python")
  a = 1/0
  print("hello end")

執(zhí)行結(jié)果:

enter called
Traceback (most recent call last):
hello python
exit called
exc_type :<class 'ZeroDivisionError'>
exc_val :division by zero
 File "F:/workspaces/python_workspaces/flask_study/with.py", line 25, in <module>
  a = 1/0
exc_tb :<traceback object at 0x0000023C4EDBB9C8>
ZeroDivisionError: division by zero

Process finished with exit code 1

我們看到,執(zhí)行結(jié)果的輸入順序,分析如下:

當(dāng)我們with Foo() as foo:時(shí),此時(shí)會(huì)執(zhí)行__enter__方法,然后進(jìn)入執(zhí)行體,也就是:

print("hello python")
a = 1/0
print("hello end")

語(yǔ)句,但是在a=1/0出現(xiàn)了異常,with將會(huì)中止,此時(shí)就執(zhí)行__exit__方法,就算不出現(xiàn)異常,當(dāng)執(zhí)行體被執(zhí)行完畢之后,__exit__方法仍然被執(zhí)行一次。

我們回到with open("file")as f: 不用關(guān)閉文件的原因就是在__exit__方法中,存在關(guān)閉文件的操作,所以不用我們手工關(guān)閉文件,with已將為我們做好了這個(gè)操作,這就可以理解了。

以上就是小編整理的相關(guān)內(nèi)容,如果大家有任何補(bǔ)充可以聯(lián)系腳本之家小編。

相關(guān)文章

  • python中語(yǔ)法糖的妙用分享

    python中語(yǔ)法糖的妙用分享

    在Python中,語(yǔ)法糖是指一些為了增加代碼的可讀性、易用性和簡(jiǎn)潔性而添加的特性,本文為大家整理了一些python中常見(jiàn)語(yǔ)法糖的使用,需要的小伙伴可以了解下
    2023-11-11
  • 使用Python微信庫(kù)itchat獲得好友和群組已撤回的消息

    使用Python微信庫(kù)itchat獲得好友和群組已撤回的消息

    這篇文章主要介紹了使用Python微信庫(kù)itchat獲得好友和群組已撤回的消息,需要的朋友可以參考下
    2018-06-06
  • 使用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能(附源碼)

    使用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能(附源碼)

    Python中實(shí)現(xiàn)人臉識(shí)別功能有多種方法,依賴于python膠水語(yǔ)言的特性,我們通過(guò)調(diào)用包可以快速準(zhǔn)確的達(dá)成這一目的,本文給大家分享使用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能的操作步驟,感興趣的朋友一起看看吧
    2021-12-12
  • Flask框架debug與配置項(xiàng)的開啟與設(shè)置詳解

    Flask框架debug與配置項(xiàng)的開啟與設(shè)置詳解

    這篇文章主要介紹了Flask框架debug與配置項(xiàng)的開啟與設(shè)置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 詳解Python中的元組與邏輯運(yùn)算符

    詳解Python中的元組與邏輯運(yùn)算符

    這篇文章主要介紹了Python中的元組與邏輯運(yùn)算符的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Python實(shí)現(xiàn)簡(jiǎn)單的索引排序與搜索功能

    Python實(shí)現(xiàn)簡(jiǎn)單的索引排序與搜索功能

    這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單的索引排序與搜索功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • python實(shí)現(xiàn)從ftp上下載文件的實(shí)例方法

    python實(shí)現(xiàn)從ftp上下載文件的實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于python實(shí)現(xiàn)從ftp上下載文件的實(shí)例方法,需要的朋友們可以參考下。
    2020-07-07
  • python?request要求接口參數(shù)必須是json數(shù)據(jù)的處理方式

    python?request要求接口參數(shù)必須是json數(shù)據(jù)的處理方式

    這篇文章主要介紹了python?request要求接口參數(shù)必須是json數(shù)據(jù)的處理方式,Reqeusts支持以form表單形式發(fā)送post請(qǐng)求,只需要將請(qǐng)求的參數(shù)構(gòu)造成一個(gè)字典,然后傳給requests.post()的data參數(shù)即可,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-08-08
  • kaggle+mnist實(shí)現(xiàn)手寫字體識(shí)別

    kaggle+mnist實(shí)現(xiàn)手寫字體識(shí)別

    這篇文章主要為大家詳細(xì)介紹了kaggle+mnist實(shí)現(xiàn)手寫字體識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    這篇文章主要介紹了Python編程實(shí)現(xiàn)tail-n查看日志文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

吐鲁番市| 桐庐县| 安阳县| 葫芦岛市| 阳高县| 石狮市| 凤山市| 普宁市| 鄂伦春自治旗| 黄龙县| 乌鲁木齐市| 四会市| 灵台县| 柳林县| 菏泽市| 白玉县| 八宿县| 紫金县| 沧州市| 宜兰市| 汉中市| 达日县| 贵州省| 湖南省| 金溪县| 庄河市| 丹凤县| 太保市| 汤阴县| 彩票| 运城市| 梓潼县| 乾安县| 舟曲县| 木里| 定日县| 如东县| 贵德县| 建始县| 城步| 岱山县|